2015-09-22 86 views
2

在我的測試下一個流發生:如何參數TestFixtureSetUp(NUnit的)

  1. 我做一些動作(例如購買產品)的所有測試前,在每個測試我檢查運行
  2. 然後一個斷言

我使用NUnit框架來運行測試,因此我使用[TestFixtureSetUp]來標記一組在所有測試之前完成的操作。然後我使用[Test]或[TestCase()]來運行測試。

通常情況下,我需要檢查相同的東西,但執行不同的流程。所以我必須參數化[TestFixtureSetUp]。我能以某種方式做到這一點嗎?

所以我想在我的所有測試都依賴於參數之前執行一次這樣的操作。

如果可以用不同的框架或不同的流結構做的請告訴我),我的代碼

例子:

[TestFixtureSetUp] //This will be done once before all tests 
public void Buy_Regular_One_Draw_Ticket(WayToPay merchant) 
{ 
      //here I want to do some actions and use different merchants to pay. 

      //So how can I send different parameters to this method? 

} 
+0

一個例子將大大有助於理解,你實際上試圖實現什麼 – drkthng

+0

當然)謝謝你的線索) –

回答

3

傢伙的解決方案是下一篇:構造該類在[TestFixtureSetUp]之前運行,因此現在[TestFixtureSetUp]中所做的所有操作都是在類的構造函數中進行的。

而且我們有能力向構造函數發送參數!爲此我們使用[TestFixture()]。

整個代碼是下一個:

[TestFixture(WaysToPay.Offline)] 
[TestFixture(WaysToPay.Neteller)] 
public class DepositTests 
{ 
     //Constructor takes parameters from TestFixture 
     public DepositTests(WaysToPay merchant) 
     { 
      //Do actions before tests considering your parameters 
     } 

     [Test] 
     public void Your_test_method() 
     { 
      //do your verification here 
     } 
    } 

使用這種方法,而不是使用[TestFixtureSetUp]你可以讓你的測試更靈活。所以行爲與[TestFixtureSetUp]可以獲得參數相同。

相關問題