即使断言失败,执行也应该继续

保山

新成员
已加入
2020年6月26日
留言内容
3
编程经验
1-3
我想要一种设计模式,该模式可以帮助我解决以下问题:即使在测试用例中assert语句之一失败,其余的也应该起作用。

我知道人们会说编写单个测试用例,但我想将其集成测试使用第一步中生成的唯一ID用于其余测试用例。我遇到了页面对象模型模式,但问题是如果一个断言失败,则整个执行将失败或停止...

有人可以帮忙吗?如果有人可以建议一个更好的设计模式或方法,请尽量。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
Assert方法的要点通常是,如果不满足所测试的特定条件,则它们将引发异常。像往常一样,您将需要捕获该异常或确保首先不要抛出该异常。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,497
地点
弗吉尼亚州切萨皮克
编程经验
10+
在这种情况下,请勿原始使用测试框架的断言类。而是滚动您自己的断言类,该类将失败的断言记录到失败的断言列表中。在测试结束时,使用测试框架的断言类断言该列表不为空。对于该断言的消息,您可以使用String.Join()与记录的消息一起构建一个长字符串。

我相信xUnit内置了这样的东西,但是我在寻找其他东西时只是顺便看到了它。我正在寻找断言抛出一个异常的声明,但是它必须来自一组异常,但是除基本Exception类之外,它们之间没有通用的基类。我不想要那个基类。我看到了xUnit原始作者之一建议的方法,但是最终我重新编写了测试,因为最后,我想真正测试一组特定的前提条件和操作会导致特定的异常,而不是比我原来的方法(如果只对固定集执行操作应抛出某种异常)。
 
最佳 底部