1
我有這樣的方法:如何編寫NUnit的的TestCase測試字符串的正確列表返回
public virtual IList<string> Validate()
{
...
}
我想單元測試這個使用NUnit。這是一類車輛的一部分。
A Vehicle
可以是不同的類型,即。 Car
Boat
Truck
等
在我TestFixture
頂我成立了VehicleTypes
:
private VehicleType[] _vehicleTypes;
[SetUp]
public void MyTestInitialize()
{
transScope = new TransactionScope();
var boat= new VehicleType { Name = "boat" };
var car = new VehicleType { Name = "car" };
var truck = new VehicleType { Name = "truck" };
_vehicleTypes= new VehicleType[] { boat, car, truck };
...
}
我想是要測試的錯誤消息從方法送回只船。
我的單元測試如下:
[TestCase(0, "This vehicle is inappropriate because it doesn't have wheels")]
[TestCase(1, null)]
[TestCase(2, null)]
public void Validate_Vehicle_ReturnsAppropriateErrorMessage(int vehicleType, string expectedResult)
{
var vehicle = new Vehicle { VehicleType = _vehicleTypes[vehicleType] };
var results = vehicle.Validate();
string result;
if (results.Count == 0)
result = null;
else
result = results[0];
Assert.IsTrue(expectedResult == result);
}
因此,這是我是如何嘗試使用的TestCase來測試它。但是我不確定這是否正確,因爲單元測試不應該包含ifs
?
也可能這是一個奇怪的方法來編寫不同類型的測試?
任何人有更好的建議嗎?