C# 如何使用流畅的断言报告对象的名称

C# 如何使用流畅的断言报告对象的名称,c#,automated-tests,fluent-assertions,C#,Automated Tests,Fluent Assertions,我有一个测试,检查我们网站上一个表中的几个对象。测试是用SpecFlow和C编写的# 它看起来像这样: When I click proceed Then I should see the following values | key | value | | tax | 5.00 | | delivery | 5.00 | | subtotal | 20.00 | When I click

我有一个测试,检查我们网站上一个表中的几个对象。测试是用SpecFlow和C编写的#

它看起来像这样:

When I click proceed
Then I should see the following values
     | key       | value     |
     | tax       | 5.00      |
     | delivery  | 5.00      |
     | subtotal  | 20.00     |
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.
我的“Then”步骤代码类似于:

[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
Then I should see the following values
     | key       | value     |
     | tax       | 5.00      |
     | delivery  | 5.00      |
     | subtotal  | 20.00     |
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点的时候 是否有一种方法可以修改输出,使其符合以下内容:

-> error: Expected value of Tax to be 5.00, but found 1.00.
你可以做两件事:

  • 将原因短语传递给
    Be()
    方法,例如。 `basketSummary.Delivery.Should().Be(行[“值”],”因为 税值”)
  • 将调用包装在断言范围内,并将描述(上下文)传递到其构造函数中,如
  • 你可以做两件事:

  • 将原因短语传递给
    Be()
    方法,例如。 `basketSummary.Delivery.Should().Be(行[“值”],”因为 税值”)
  • 将调用包装在断言范围内,并将描述(上下文)传递到其构造函数中,如
  • 在最新版本中

    流畅的断言可以使用单元测试的C代码来提取 主题的名称,并在断言失败中使用该名称

    因为它需要调试符号,所以需要 在调试模式下编译单元测试,即使在构建服务器上也是如此

    在最新版本中

    流畅的断言可以使用单元测试的C代码来提取 主题的名称,并在断言失败中使用该名称

    因为它需要调试符号,所以需要 在调试模式下编译单元测试,即使在构建服务器上也是如此