我正在尝试使用FluentAssertions库创建一些Assertion类。这是断言代码:
public AndConstraint<MyTaskAssertions> Work(string because = "", params object[] becauseArgs)
{
Execute.Assertion
.BecauseOf(because, becauseArgs)
.WithExpectation("Expected {context:mytask} to work{reason}, ")
.Given(() => Subject)
.ForCondition(x => x.Works)
.FailWith("but it doesn't");
return new AndConstraint<MyTaskAssertions>(this);
}
这是我的考验:
var t = new MyTask {Works=false};
t.Should().Work();
一切正常,除了在异常消息上显示“ mytask ”而不是变量名t
之外,
预期mytask可以正常工作,但不能
我已经阅读了文档的Extensibility页,并且还检查了内置断言的源代码,但是我仍然不确定要显示异常消息的确切信息是什么?实际的变量名称,而不是“ context:”占位符之后的名称。
答案 0 :(得分:2)
您需要用[CustomAssertion]
标记您的方法。另请参见https://fluentassertions.com/introduction#subject-identification