我有一個POCO類:如何通過使用It.IsIn(someRange)組合POCO屬性來迭代多個字段?
public class SomeEntity {
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
我想測試中SomeEntity類使用不同的值有一些其他類。問題是我需要測試許多屬性的不同組合。例如:
- ID = 1,名字= NULL,名字= 「Doe的」
- ID = 1,名字= 「」,名字= 「Doe的」
- ID = 1,名字=「約翰」,姓氏= 「李四」
- ID = 1,名字= NULL,名字= 「」
- 等
所以在每次測試我想創建測試對象是這樣的:
// test that someOtherObject always return the same result
// for testObject with ID = 1 and accepts any values from range of
// values for FirstName and LastName
var testObject = new SomeEntity {
Id = 1, // this must be always 1 for this test
FirstName = It.IsIn(someListOfPossibleValues), // each of this values must be accepted in test
LastName = It.IsIn(someListOfPossibleValues) // each of this values must be accepted in test
}
var result = someOtherObject.DoSomething(testObject);
Assert.AreEqual("some expectation", result);
我不想使用nunit TestCase,因爲會有很多組合(巨大的矩陣)。
我試圖在調試中運行這個測試,並且它只使用列表中的第一個值調用DoSomething一次。
問題:我怎麼能通過所有可能的值的組合?
非常感謝。這就是它!我不打算「射擊」,我只是在代碼中有很多「如果」的邏輯) –