2014-02-10 15 views
1

我使用xUnit.net作爲我的測試框架,但我想這個問題適用於其他框架。以下我的方法需要兩個布爾值。如何測試所有組合而不必寫出每個組合?如何在所有組合上運行測試?

[Theory, 
    InlineData(false, false), 
    InlineData(true, false), 
    InlineData(false, true), 
    InlineData(true, true)] 
    public void Foo(bool A, bool B) 

有沒有辦法做這樣的事情:

[Theory, 
    SomeAttribute(for(int i=0; i<5; i++), for(int y=0; y<5; y++)), 
    public void Foo(int A, int B) 

,將運行該測試5×5 = 25倍?

回答

0
public static IEnumerable<object[]> FooData 
    { 
     get 
     { 
      for (int a = 0; a < 2; a++) 
      { 
       for (int b = 0; b < 2; b++) 
       { 
        yield return new object[] {a > 0, b > 0}; 
       } 
      } 
     } 
    } 

    [Theory] 
    [PropertyData("FooData")] 
    public void Foo(bool A, bool B) 
相關問題