コード例 #1
0
        public void Öffnungszeiten_IsNowOpen()
        {
            //var ö = new Öffnungszeiten();

            //Assert.IsTrue(ö.IsNowOpen());
            //// Problem: Unittest geht jetzt (15:23), aber am Abend oder am WE nicht mehr

            using (ShimsContext.Create())
            {
                // Hier gilt "meine"
                System.Fakes.ShimDateTime.NowGet = () => new DateTime(1845, 3, 11, 12, 30, 59);
                // Andere Abhängigkeiten zum Spaß :)

                System.IO.Fakes.ShimFile.ExistsString = x => true;
                Assert.IsTrue(File.Exists("7:\\demo\\diedateigibtesnichASOD<aosd.<asd<sad<sad&&%&"));

                var ö = new Öffnungszeiten();
                Assert.IsTrue(ö.IsNowOpen());
            }

            // Anwendungsfälle:
            // Simulation von einem Sensor: Testcases für zu heiß, normal, kalt, keine sensordaten, Extremdaten
            // Keine echte DB-Verbindung
            // Netzwerkverbindung
            // Rest-API liefert immer den selben JSON/XML - String
            // => schnell und immer konsistente Daten
        }
コード例 #2
0
        public void IsNowOpenTest_FakesFramwork()
        {
            // 1) Referenzen -> FakeAssembly hinzufügen
            Öffnungszeiten öz = new Öffnungszeiten();

            // 2) Shims.Context -> Bereich, in dem die Fake-Version gültig ist

            using (ShimsContext.Create())
            {
                // Hier gelten die Fakes
                System.Fakes.ShimDateTime.NowGet = () => new DateTime(1848, 3, 12, 12, 32, 55);

                var fakevariante = DateTime.Now;
                Assert.IsFalse(öz.IsNowOpen()); // Sonntag hat zu !!!
                // <--- Hier wird intern DateTime.Now verwendet

                // Andere Anwendungsfälle:
                System.IO.Fakes.ShimFile.ExistsString = x => true; // "Datei existiert immer"

                if (File.Exists("7:\\/abcde\\demo.%&/([].txt🙂😍😎😊☺☺"))
                {
                    ;
                }
            }

            var original = DateTime.Now;
            // Hier gilt das Original
        }
コード例 #3
0
        public void IsNowOpen_returns_FakeFramework() // VisualStudio Enterprise
        {
            // References -> Rechtsklick -> Add Fakes Libary
            Öffnungszeiten öz = new Öffnungszeiten();

            // Definieren, dass statt DateTime.Now unser Fake genommen werden soll
            using (ShimsContext.Create())
            { // Codebereich, wo unsere Fake-Konfiguration gültig ist:
                System.Fakes.ShimDateTime.NowGet = () => new DateTime(1848, 3, 13, 12, 45, 59);

                DateTime date = DateTime.Now;

                Assert.IsTrue(öz.IsNowOpen());

                // Andere Varianten:
                System.IO.Fakes.ShimFile.ExistsString = file => true; // jede datei Existiert ;)

                if (File.Exists("7:\\demo/abc&%$%$\\&&%$&\t\tasd\tdemo.&%$.exe"))
                {
                    ;
                }
                else
                {
                    ;
                }
            }

            DateTime date2 = DateTime.Now;
        }
コード例 #4
0
        public void IsNowOpenTest()
        {
            Öffnungszeiten öz = new Öffnungszeiten();

            // Problem: Am Fr gehts, am So nicht -> DateTime.Now
            Assert.IsTrue(öz.IsNowOpen());

            // Lösung 1: Fakes-Framework: Visual Studio Enterprise
            // Lösung 2: Tonerdo.Pose -> OpenSource-Variante vom Fakes-Framework
        }