NUnit 是和 Is.Not EqualTo 约束
NUnit Is and Is.Not EqualTo Constraints
我希望得到以下结果:
var a = Is.EqualTo("OK").ApplyTo("OK").IsSuccess;
var b = Is.Not.EqualTo("OK").ApplyTo("OK").IsSuccess;
到return不同的结果,但都是真的。有人可以解释一下我错过了什么吗?
我希望在我自己的测试代码中使用 NUnit 的约束检查,但在调用外部,例如Assert.That 但这种行为不是我所期望的。
我必须在调试器中设置一个测试才能绝对确定,但乍一看,这就是我认为正在发生的事情...
NUnit 使用运算符和操作数的内部堆栈来解析流畅的语法。 Is.Not.EqualTo("OK") 生成一个 EqualConstraint,其 Not 运算符保存在堆栈中。您的 ApplyTo 调用针对 EqualConstraint 运行。
我怀疑如果您在等式约束之后立即插入对 Resolve() 的调用,结果将如您所料。
var b = Is.Not.EqualTo("OK").Resolve().ApplyTo("OK").IsSuccess;
事实上,约束运算符是语法糖,旨在直接用于测试,而不是用于更一般的用途。
我希望得到以下结果:
var a = Is.EqualTo("OK").ApplyTo("OK").IsSuccess;
var b = Is.Not.EqualTo("OK").ApplyTo("OK").IsSuccess;
到return不同的结果,但都是真的。有人可以解释一下我错过了什么吗?
我希望在我自己的测试代码中使用 NUnit 的约束检查,但在调用外部,例如Assert.That 但这种行为不是我所期望的。
我必须在调试器中设置一个测试才能绝对确定,但乍一看,这就是我认为正在发生的事情...
NUnit 使用运算符和操作数的内部堆栈来解析流畅的语法。 Is.Not.EqualTo("OK") 生成一个 EqualConstraint,其 Not 运算符保存在堆栈中。您的 ApplyTo 调用针对 EqualConstraint 运行。
我怀疑如果您在等式约束之后立即插入对 Resolve() 的调用,结果将如您所料。
var b = Is.Not.EqualTo("OK").Resolve().ApplyTo("OK").IsSuccess;
事实上,约束运算符是语法糖,旨在直接用于测试,而不是用于更一般的用途。