Testování částí aplikací Xamarin.iOS

Tento dokument popisuje, jak vytvořit testy jednotek pro projekty Xamarin.iOS. Testování jednotek pomocí Xamarin.iOS se provádí pomocí architektury Touch.Unit, která zahrnuje jak spouštěč testů iOS, tak upravenou verzi NUnit s názvem Touch.Unit , která poskytuje známou sadu rozhraní API pro psaní testů jednotek.

Nastavení testovacího projektu v Visual Studio pro Mac

Pokud chcete pro svůj projekt nastavit architekturu testování jednotek, stačí do svého řešení přidat projekt typu iOS Unit Tests Project. Uděláte to tak, že kliknete pravým tlačítkem na své řešení a vyberete Přidat > nový projekt. V seznamu vyberte iOS > Tests > Unified API > iOS Unit Tests Project (můžete zvolit C# nebo F#).

Choose either C# or F#

Výše uvedený projekt vytvoří základní projekt, který obsahuje základní program spouštěče a který odkazuje na nové sestavení MonoTouch.NUnitLite, bude váš projekt vypadat takto:

The project in the Solution Explorer

Třída AppDelegate.cs obsahuje spouštěč testů a vypadá takto:

[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
    UIWindow window;
    TouchRunner runner;

    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        // create a new window instance based on the screen size
        window = new UIWindow (UIScreen.MainScreen.Bounds);
        runner = new TouchRunner (window);

        // register every tests included in the main application/assembly
        runner.Add (System.Reflection.Assembly.GetExecutingAssembly ());

        window.RootViewController = new UINavigationController (runner.GetViewController ());

        // make the window visible
        window.MakeKeyAndVisible ();

        return true;
    }
}

Poznámka:

Typ projektu testování jednotek pro iOS není v sadě Visual Studio 2019 nebo Visual Studio 2017 ve Windows k dispozici.

Psaní některých testů

Teď, když máte nastavené základní prostředí, byste měli napsat svou první sadu testů.

Testy jsou napsány vytvořením tříd, které mají [TestFixture] atribut použitý na ně. Uvnitř každé třídy TestFixture byste měli použít [Test] atribut pro každou metodu, kterou má spouštěč testů vyvolat. Skutečné přípojky testů mohou být v libovolném souboru v projektu Testy.

Pokud chcete rychle začít, vyberte Přidat nebo přidat nový soubor a vyberte ve skupině Xamarin.iOS UnitTests. Tím přidáte kostru souboru, který obsahuje jeden úspěšný test, jeden neúspěšný test a jeden ignorovaný test, vypadá takto:

using System;
using NUnit.Framework;

namespace Fixtures {

    [TestFixture]
    public class Tests {

        [Test]
        public void Pass ()
        {
                Assert.True (true);
        }

        [Test]
        public void Fail ()
        {
                Assert.False (true);
        }

        [Test]
        [Ignore ("another time")]
        public void Ignore ()
        {
                Assert.True (false);
        }
    }
}

Spuštění testů

Pokud chcete tento projekt spustit uvnitř řešení, klikněte na něj pravým tlačítkem myši a vyberte Položku ladění nebo Spustit položku.

Spouštěč testů umožňuje zobrazit, které testy jsou registrované, a vybrat jednotlivě, které testy je možné spustit.

The list of registered testsAn individual text

The run results

Jednotlivá zařízení testů můžete spustit tak, že vyberete příslušenství textu z vnořených zobrazení nebo můžete spustit všechny testy pomocí příkazu "Spustit vše". Pokud spustíte výchozí test, který má obsahovat jeden úspěšný test, jeden neúspěšný a druhý ignorovaný test. Sestava vypadá takto a můžete přejít přímo k podrobnostem neúspěšných testů a zjistit další informace o selhání:

Screenshot shows a sample report, Test Runner screen.Screenshot shows a sample report, Tests screen.Screenshot shows a sample report, Test screen with test status.

Můžete se také podívat na okno Výstup aplikace v integrovaném vývojovém prostředí a zjistit, které testy se spouští a jejich aktuální stav.

Psaní nových testů

NUnitLite je upravená verze projektu NUnit s názvem Touch.Unit . Jedná se o zjednodušenou testovací architekturu pro .NET založenou na nápadech v NUnit a poskytuje podmnožinu jejích funkcí. Používá minimální prostředky a bude běžet na platformách s omezenými prostředky, jako jsou ty, které se používají ve vloženém a mobilním vývoji. Rozhraní API NUnitLite je dostupné v Xamarin.iOS. Základní kostra poskytovaná šablonou testu jednotek je hlavním vstupním bodem metody Třídy Assert .

Kromě metod assert třídy je funkce testování jednotek rozdělena na následující obory názvů, které jsou součástí NUnitLite: