我无法想出一种方法来描述我试图为问题标题做些什么 - 这可能就是为什么我不能只是谷歌它。任何标题或谷歌搜索的帮助都会很热。
这是我正在寻找的代码:
Assert.That(true == false);
...或...
Assert.That(true == false).Else<ArgumentException>();
此时,我可以使第二个工作或我可以使第一个工作。 (第一个抛出一个非常通用的&#34; AssertionFailedException&#34;,如果没有提供.Else()部分,我希望保留默认值。
有没有办法可以让它们都起作用?
答案 0 :(得分:1)
问题是,在运行时评估That
时,它不知道还有一个额外的方法调用(Else
)。像NUnit这样的框架使用不同的语法来避免这个问题:
Assert.That(someValue, Is.Not.EqualTo(someOtherValue))
您构造一个约束,将其传递给Assert.That
,然后NUnit执行实际的验证和异常抛出。
您可以引入这样的语法(再次使用NUnit作为示例):
Assert.That(someValue, Is.Not.EqualTo(someOtherValue).Else<ArgumentException>());
这样,配置断言失败时抛出的异常只是约束配置的一部分。