[Theory]
[InlineData("atv,atv,atv,hdm")]
[InlineData("nx9,nx9,atv,nx9,nx9,nx9")]
[InlineData("nx9,nx9,atv,nx9,nx9,nx9,nx9")]
public void Buy3Pay2(string input)
{
var co = new Checkout(rules);
var stock = input.Split(',');
foreach (var item in stock)
{
var product = products.SingleOrDefault(p => string.Compare(item, p.SKU, true) == 0);
Item realItem = new Item() {
Name = product.Name,
SKU = product.SKU,
Price = product.Price
};
realItem.ID = Guid.NewGuid().ToString();
co.Scan(realItem);
}
var total = co.Total();
total.Should().Be(249.00M);
//total.Should().Be(531.00M); for the second input
//total.Should().Be(698.00M); for the 3rd input
}
如何根据不同的InlineData输入设置预期的结果?
最佳答案
将其(期望)添加为输入并将其用于断言
例如
[Theory]
[InlineData("atv,atv,atv,hdm", "249.00")]
[InlineData("nx9,nx9,atv,nx9,nx9,nx9", "531.00")]
[InlineData("nx9,nx9,atv,nx9,nx9,nx9,nx9", "698.00")]
public void Buy3Pay2(string input, string expected) {
//Arrange
var co = new Checkout(rules);
var stock = input.Split(',');
foreach (var item in stock) {
var product = products.SingleOrDefault(p => string.Compare(item, p.SKU, true) == 0);
Item realItem = new Item() {
Name = product.Name,
SKU = product.SKU,
Price = product.Price
};
realItem.ID = Guid.NewGuid().ToString();
co.Scan(realItem);
}
//Act
var total = co.Total();
//Assert
total.Should().Be(Convert.ToDecimal(expected));
}
关于c# - xUnit .NET Core 具有各自不同期望的多个 InlineData 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831950/