NUnit Is和Is.Not EqualTo Constraints

时间:2016-05-24 21:11:58

标签: nunit

我希望如下:

var a = Is.EqualTo("OK").ApplyTo("OK").IsSuccess;
var b = Is.Not.EqualTo("OK").ApplyTo("OK").IsSuccess;

要返回不同的结果,但它们都是真的。有人可以解释我错过了什么吗?

我希望在我自己的测试代码中使用NUnit的约束检查,但在调用例如断言。但是这种行为不是我的预期。

1 个答案:

答案 0 :(得分:2)

我必须在调试器中设置一个绝对确定的测试,但乍一看,这就是我认为正在发生的事情......

NUnit使用内部运算符和操作数堆栈来解析流畅的语法。 Is.Not.EqualTo(“OK”)生成一个EqualConstraint,其中Not运算符保存在堆栈中。您的ApplyTo调用针对EqualConstraint运行。

我怀疑如果你在同等约束之后插入对Resolve()的调用,结果将如你所愿。

var b = Is.Not.EqualTo("OK").Resolve().ApplyTo("OK").IsSuccess;

事实上,约束运算符是用于直接用于测试的语法糖,而不是更普遍的使用。