Xamarin.iOS Uygulamalarını Birim Testi

Bu belgede, Xamarin.iOS projeleriniz için birim testlerinin nasıl oluşturulacağı açıklanır. Xamarin.iOS ile birim testi, hem iOS test çalıştırıcısını hem de birim testleri yazmak için tanıdık bir API kümesi sağlayan Touch.Unit adlı değiştirilmiş bir NUnit sürümünü içeren Touch.Unit çerçevesi kullanılarak yapılır.

Mac için Visual Studio'de test projesi ayarlama

Projeniz için bir birim testi çerçevesi ayarlamak için tek yapmanız gereken çözümünüzde iOS Birim Testleri Projesi türünde bir proje eklemektir. Çözümünüzde sağ tıklayıp Yeni Proje Ekle'yi > seçerek bunu yapın. Listeden iOS > Testleri > Birleşik API > iOS Birim Testleri Projesi'ni seçin (C# veya F# seçebilirsiniz).

C# veya F'yi seçin#

Yukarıdaki, temel bir çalıştırıcı programı içeren ve yeni MonoTouch.NUnitLite derlemesine başvuran temel bir proje oluşturur; projeniz şöyle görünür:

Çözüm Gezgini proje

AppDelegate.cs sınıfı test çalıştırıcısını içerir ve şöyle görünür:

[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;
    }
}

Not

iOS Birim Testi proje türü, Windows üzerinde Visual Studio 2019 veya Visual Studio 2017'de kullanılamaz.

Bazı Testler Yazma

Artık temel kabuğunuz olduğuna göre, ilk test kümenizi yazmanız gerekir.

Testler, özniteliğinin [TestFixture] uygulandığı sınıflar oluşturularak yazılır. Her TestFixture sınıfının içinde, test çalıştırıcısının çağırmasını [Test] istediğiniz her yönteme özniteliğini uygulamanız gerekir. Gerçek test fikstürleri Testler projenizdeki herhangi bir dosyada bulunabilir.

Hızlı bir şekilde başlamak için Ekle/Yeni Dosya Ekle'yi seçin ve Xamarin.iOS grubu UnitTests'i seçin. Bu işlem, bir geçiş testi, bir başarısız test ve yoksayılan bir test içeren bir iskelet dosyası ekler; şöyle görünür:

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);
        }
    }
}

Testlerinizi Çalıştırma

Bu projeyi çözümünüzün içinde çalıştırmak için sağ tıklayın ve Öğede Hata Ayıkla veya Öğeyi Çalıştır'ı seçin.

Test çalıştırıcısı hangi testlerin kaydedildiğini görmenizi ve hangi testlerin yürütülebileceğini tek tek seçmenizi sağlar.

Kayıtlı testlerin listesiTek bir metin

Çalıştırma sonuçları

İç içe görünümlerden metin fikstürünü seçerek bireysel test fikstürlerini çalıştırabilir veya tüm testlerinizi "Her Şeyi Çalıştır" ile çalıştırabilirsiniz. Bir geçiş testi, bir hata ve yoksayılan test içermesi gereken varsayılan testi çalıştırırsanız. Rapor bu şekilde görünür ve doğrudan başarısız testlere gidebilir ve hata hakkında daha fazla bilgi bulabilirsiniz:

Test Çalıştırıcısı ekranını gösteren örnek raporu gösteren ekran görüntüsü. Örnek bir raporu gösteren ekran görüntüsü, Testler ekranı. Test durumuyla test ekranı adlı örnek raporu gösteren ekran görüntüsü.

Hangi testlerin yürütülmekte olduğunu ve geçerli durumlarını görmek için IDE'nizdeki Uygulama Çıktısı penceresine de bakabilirsiniz.

Yeni Testler Yazma

NUnitLite, NUnit'in Touch.Unit projesi olarak adlandırılan değiştirilmiş bir sürümüdür. NUnit'teki fikirleri temel alan ve özelliklerinin bir alt kümesini sağlayan .NET için basit bir test çerçevesidir. En düşük kaynakları kullanır ve tümleşik ve mobil geliştirmede kullanılanlar gibi kaynak kısıtlanmış platformlarda çalışır. NUnitLite API'sini Xamarin.iOS'ta kullanabilirsiniz. Birim testi şablonu tarafından sağlanan temel iskeletle, ana giriş noktanız Assert sınıfı yöntemleridir.

Assert sınıfı yöntemlerine ek olarak, birim testi işlevi NUnitLite'in parçası olan aşağıdaki ad alanlarına bölünür: