2011-05-25 19 views
10

MSpec ile veri odaklı testler oluşturmak mümkün mü? Örneğin, NUnit, birden çok veriye dayalı vakaya izin veren TestCase özniteliğine sahiptir.MSpec ile veri odaklı testler oluşturmak mümkün mü?

[TestFixture] 
public class ExampleOfTestCases 
{ 

    [TestCase(1,2,3)] 
    [TestCase(3,3,6)] 
    [TestCase(2,2,4)] 
    public void when_adding_two_numbers(int number1, int number2, int expected) 
    { 
    Assert.That(number1 + number2, Is.EqualTo(expected); 
    } 
} 
+0

http://www.planetgeek.ch/2013/05/26/rowtest-theory-testdata-support-for-machine-specifications/ – Mohsen

cevap

4

Bu mümkün değil. Verileri MSpec'e karşı uygulamanızı öneririm, satır testleri veya kombinatoryal testlere (ve davranışı tanımlarken MSpec'e) ihtiyacınız varsa, NUnit veya MbUnit kullanın.

Takip: Aeden, TestCases/RowTests, MSpec ile mümkün değildir ve muhtemelen olmayacaktır. için numaralı iş için en iyi araç olduğundan lütfen bu gibi durumlarda NUnit kullanın. MSpec, sistem davranışını belirtmek istediğinizde mükemmeldir (Sipariş verildiğinde => yerine getirme hizmetini bildirmelidir). MSpec ile TestCases için, sınıf patlamasına neden olabilecek her giriş kombinasyonu için bir bağlam oluşturmanız gerekir.

MSpec, öğrenmesi kolay bir akıl testi yapısına sahip olmak istediğinizde mükemmeldir. Boş bir kağıda başlamak yerine (NUnit'in [Test] yöntemlerini düşünün) MSpec, teknik özelliklerinizi geliştirebileceğiniz bir şablon (Kuruluş, Çünkü, It) verir. Bunu Düzenle, Yasla ve Onayla'nın bir kod satırında birleştirildiği örnekle karşılaştırın.

+0

Eğer bu çok düşük bir seviye gibi görünüyorsa üzgünüm, ama yine de aynı soruya sahibim. benim takip sorumum vardı. "Sistem davranışını" nasıl tanımlarsınız? Harici bir istemciye (ör., Bir kullanıcı, başka bir sistem) sağlanan davranış mıdır? – Aeden

+0

@Aeden: Bu, yazılımınızın (sisteminizin) davranış şeklini açıklayan, yürütülebilir ve insan tarafından okunabilen bir belgeyi temsil ettiği anlamına gelir. – Mohsen

İlgili konular