NUnit'in Parametreli Testleri i├žin MSTest E┼čde─čeri?


Al─▒nan cevaba git


NUnit, birden fazla kez ├žal─▒┼čt─▒r─▒lacak bir birim testi i├žin bir dizi veri giri┼či belirleyebilece─činiz bir ├Âzelli─či destekler.

 [RowTest]
[Row(1001,1,2,3)]
[Row(1,1001,2,3)]
[Row(1,2,1001,3)]
public void SumTests(int x, int y, int z, int expected)
{
   ...
}
 

MSTest kullanarak bu ayn─▒ ┼čeyi ba┼čarman─▒n en iyi yolu nedir? Benzer bir ├Âznitelik k├╝mesi bulam─▒yorum.


44









Cevap say─▒s─▒n─▒ say: 6






Misiniz bu yard─▒m?

Bu hafta TFS taraf─▒ndan y├Ânetilen bir projeye baz─▒ testler ekledim, bu y├╝zden VS2008 ile birlikte sunulan ÔÇť├žekirdekÔÇŁ birim test ├žer├ževesini kullanmaya karar verdim ve maalesef RowTest'leri desteklemiyor. Ancak Veri Odakl─▒ ├ťnite Testi ad─▒ verilen benzer bir ├Âzelli─če sahiptir. Bu yakla┼č─▒mla "basit" RowTest senaryosunu uygulamak biraz daha karma┼č─▒k, ancak ayn─▒ zamanda daha karma┼č─▒k olanlar─▒ da uygulaman─▒za izin veriyor.


20







MSTest2 kullananlar i├žin, DataRow + DataTestMethod tam olarak bunu yapabilir:

 [DataRow(Enum.Item1, "Name1", 123)]
[DataRow(Enum.Item2, "Name2", 123)]
[DataRow(Enum.Item3, "Name3", 456)]
[DataTestMethod]
public void FooTest(EnumType item, string name, string number)
{
    var response = ExecuteYourCode(item, name, number);

    Assert.AreEqual(item, response.item);
}
 

Burada daha fazlas─▒https://blogs.msdn.microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/


34







Bu ├Âzelli─či, burada g├Âsterildi─či gibi en k├╝├ž├╝k bir uzant─▒y─▒ yazarak elde edebilirsiniz.

http://blogs.msdn.com/b/vstsqualitytools/archive/2009/09/04/extending-the-visual-studio-unit-test-type-part-2.aspx


9







Asl─▒nda, Parametreli ├ťnite Testi (PUT), ├╝nite testinin do─čal bir genellemesidir. Microsoft Research, Pex ad─▒nda bir projeye sahip olup, Test Alt─▒nda (CUT) i├žin PUT'u otomatik olarak ├╝retecektir. Pex bir otomatik test giri┼či olu┼čturma arac─▒d─▒r . Test verilerini kendiniz haz─▒rlamak yerine, Pex arac─▒ CUT parametrelerinin ilgilenilen giri┼člerini bulacak ve buna g├Âre birim test durumlar─▒n─▒ ├╝retecektir. L├╝tfen buray─▒ kontrol edin .


1







Cevab─▒m @ oscar-e-fraxedas-tormo one i├žin similuar.
─░├žinde 1 ila 100 test y├Ântemine sahip ├╝retilmi┼č s─▒n─▒flardan birinin alt s─▒n─▒f─▒n─▒ alabilir ve t├╝retilmi┼č s─▒n─▒fta t├╝m test mant─▒─č─▒n─▒ sa─člayabilirsiniz. A┼ča─č─▒daki ├Ârnekte:

 [TestClass]
public class Ha_ha_ha_Test: MsTestRows.Rows.TestRows_42<string>
{
    public override void TestMethod(string dataRow, int rowNumber)
    {
        Console.WriteLine(dataRow);
        Assert.IsFalse(dataRow.Contains("3"));
    }

    public override string GetNextDataRow(int rowNumber)
    {
        return "data" + rowNumber;
    }
}
 

S─▒n─▒f Ha_ha_ha_Test , 42 olu┼čturulan sat─▒rlar─▒ (y├Ântemleri) i├žerecektir . Bu sat─▒r─▒n her biri GetNextDataRow i├žin, gerekli test verilerini sa─člamak i├žin ├Âzel y├Ântem ├ža─čr─▒lacakt─▒r.

Daha fazla detay:

https://github.com/dzhariy/mstest-rows


0







Test y├Ântemi ve parametrelerle sanal ├Âzellikler olarak bir temel s─▒n─▒f olu┼čturabilirsiniz. Bu s─▒n─▒ftan miras ald─▒─č─▒n─▒zda, sadece istedi─činiz de─čerlere sahip ├Âzellikleri ge├žersiz k─▒lman─▒z gerekir. L├╝tfen ├Ârnek kodu inceleyin:

 public class Operation
{
    public static int Add(int x, int y)
    {
        return x + y;
    }
}

[TestClass]
public class AddTests : WorkItemTest
{
    protected virtual int First{get { return 0; }}
    protected virtual int Second{get { return 0; }}

    [TestInitialize]
    public virtual void Init()
    {
        //Init code
    }

    [TestCleanup]
    public virtual void Clean()
    {
        //Clean code
    }

    [TestMethod]
    [Description("x+y = y+x")]
    public virtual void Test_operation_commutativity()
    {
        Assert.AreEqual(Operation.Add(Second, First), Operation.Add(First, Second));
    }
}

[TestClass]
public class AddPositiveTest : AddTests
{
    protected override int First { get { return 1; } }
    protected override int Second { get { return 2; } }
}

[TestClass]
public class AddNegativeTest : AddTests
{
    protected override int First { get { return -1; } }
    protected override int Second { get { return -2; } }
}
 

-2



─░lgili yay─▒nlar


LINQ i├žin Java e┼čde─čeri nedir? [kapal─▒]

Windows i├žin ÔÇťrm -rfÔÇŁ e┼čde─čeri mi?

Bir vaka / anahtar ifadesi i├žin Python e┼čde─čeri nedir? [├žift]

JSON i├žin XSLT e┼čde─čeri [kapal─▒]

Parametreli testlerin isimlerini de─či┼čtirme

NSLog ile kullanmak i├žin ÔÇťtoString ()ÔÇŁ i├žin Objective-C e┼čde─čeri nedir?

NUnite Unit testleri, Test Explorer y├╝kl├╝ durumda Test Explorer'da g├Âsterilmiyor

MSTest'in NUnit'in TestCase e┼čde─čeri var m─▒?

Parametreli bir SELECT sorgusu i├žin bir PDO nesnesini do─čru bir ┼čekilde nas─▒l kullanabilirim

Komisyon spesifikasyonlar─▒n─▒ ├žal─▒┼čt─▒rmadan Rails rspec testleri i├žin test veritabanlar─▒n─▒ nas─▒l haz─▒rlar─▒m?

Etiketle ilgili di─čer sorular [unit-testing]


Normal bir ifade kullanarak bir e-posta adresini nas─▒l do─črular─▒m?

Varolan ve taahh├╝t edilmeyen i┼čleri Git'teki yeni bir ┼čubeye ta┼č─▒

Harf b├╝y├╝kl├╝─č├╝ne duyars─▒z 'Contains (string)'

JSON verilerini Curl ile bir terminalden / komut sat─▒r─▒ndan Test Spring REST'e nas─▒l POST yapabilirim?

'Android.os.NetworkOnMainThreadException' ├Â─česini nas─▒l d├╝zeltebilirim?

Git ┼čubesini ustal─▒kla birle┼čtirmek i├žin en iyi (ve en g├╝venli) yol nedir?

Eclipse Android eklentilerinde ÔÇťHata ay─▒klama sertifikas─▒n─▒n s├╝resi dolduÔÇŁ hatas─▒

Oturumu kapat─▒p tekrar a├žmadan .bashrc dosyas─▒n─▒ nas─▒l yeniden y├╝klerim?

Yaln─▒zca Git havuzunun alt dizinini nas─▒l klonlar─▒m?

MVC ve MVVM aras─▒ndaki fark nedir?