2011-05-25 94 views
10

使用MSpec可以創建數據驅動測試嗎?是否可以使用MSpec創建數據驅動的測試?

例如,NUnit具有允許多個數據驅動的情況的TestCase屬性。

[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 2017-07-04 06:01:16

回答

4

這是不可能的。我建議不要使用數據驅動MSpec,如果需要行測試或組合測試(和MSpec描述行爲),則使用NUnit或MbUnit。

後續:Aeden,TestCases/RowTests不可能與MSpec和可能永遠不會。請使用NUnit來處理這種情況,因爲它是工作的最佳工具。當您想要指定系統行爲時(當提交訂單=>應通知履行服務時),MSpec出色。對於使用MSpec的TestCases,您需要爲每個可能導致課堂爆炸的輸入組合創建一個上下文。

當你想擁有一個簡單易學的理性測試結構時,MSpec也非常棒。 (想想NUnit的[Test]方法),MSpec爲您提供了一個模板(Establish,Because,It),您可以根據這些模板構建您的規範。將此與您在排列,行爲和聲明組合到一行代碼中的示例對比。

+0

對不起,如果這似乎太低級別,但我仍然有同樣的問題我在我的後續問題中。你如何定義「系統行爲」?它是否向外部客戶端(例如用戶,另一個系統)提供行爲 – Aeden 2011-06-05 17:06:18

+0

@Aeden:他表示它代表一個可執行文件和人類可讀文檔,它描述了您的軟件(系統)部分行爲的方式。 – Mohsen 2017-07-04 05:35:44

相關問題