滚动您自己的断言(并使用这些方法做一些有趣的事情)
本文关键字:方法 滚动 断言 自己的 | 更新日期: 2023-09-27 17:52:56
我想不出一种方法来描述我想为问题标题做什么——这可能是我不能直接谷歌它的原因。任何帮助,无论是标题或谷歌将是热门。
这是我正在寻找的代码:
Assert.That(true == false);
…或…
Assert.That(true == false).Else<ArgumentException>();
在这一点上,我可以使第二个工作或我可以使第一个工作。(第一个抛出一个非常通用的"AssertionFailedException",我希望在没有提供。else()部分的情况下将其保留为默认值。有办法让这两个都工作吗?
问题是,当运行时计算That
时,它不知道有一个额外的方法调用(Else
)要进行。像NUnit这样的框架使用不同的语法来避免这个问题:
Assert.That(someValue, Is.Not.EqualTo(someOtherValue))
你构造一个约束,把它传递给Assert.That
,然后NUnit做实际的验证和抛出异常。
你可以引入这样的语法(再次以NUnit为例):
Assert.That(someValue, Is.Not.EqualTo(someOtherValue).Else<ArgumentException>());
这样,配置断言失败时抛出什么异常只是约束配置的一部分。