我有一个测试可以检查我们网站上表格中的几个对象。测试是用 SpecFlow 和 C# 编写的
它看起来像这样:
When I click proceed
Then I should see the following values
| key | value |
| tax | 5.00 |
| delivery | 5.00 |
| subtotal | 20.00 |
我的“然后”步骤背后的代码类似于:
[StepDefinition("I should see the following values")]
public void IShouldSeeTheFollowingValues(Table table)
{
var basketSummary = new BasketModel();
foreach (var row in table.Rows)
{
switch (row["key"])
{
case "tax":
basketSummary.Tax.Should().Be(row["value"]);
break;
case "delivery":
basketSummary.Delivery.Should().Be(row["value"]);
break;
case "subtotal":
basketSummary.Subtotal.Should().Be(row["value"]);
break;
}
}
}
如果测试错误看起来像这样,那么问题就在我们的构建日志中:
When I click proceed
-> done: OrderConfirmationPageSteps.ClickProceed() (1.0s)
Then I should see the following values
--- table step argument ---
| key | value |
| tax | 5.00 |
| delivery | 5.00 |
| subtotal | 20.00 |
-> error: Expected value to be 5.00, but found 1.00.
正如您在上面看到的那样,很难区分它意味着哪个对象......当它说它期望它是 5.00 时有没有办法可以修改输出以说出以下内容:
-> error: Expected value of Tax to be 5.00, but found 1.00.