是否可以告诉xUnit.net执行所有例如Assert.True()
在一个测试方法?基本上,在我们的一些使用/测试用例中,所有的断言都属于逻辑上属于同一个测试范围,我有像这样:Xunit:在一种测试方法中执行所有'断言'?
[Fact(DisplayName = "Tr-MissImpl")]
public void MissingImplementationTest()
{
// parse export.xml file
var exportXml = Libraries.Utilities.XML.GenericClassDeserializer.DeserializeXmlFile<Libraries.MedTrace.ExportXml>(
ExportXmlFile);
// compare parsed results with expected ones
Assert.True(exportXml.ContainsRequirementKeyWithError("PERS_154163", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("PERS_155763", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("PERS_155931", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("PERS_157145", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("s_sw_ers_req_A", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("s_sw_ers_req_C", "E0032A"));
Assert.True(exportXml.ContainsRequirementKeyWithError("s_sw_ers_req_D", "E0032A"));
}
现在,例如,第一个Assert.True(...)
失败,其他的不执行/检查。我宁愿不把这七个断言分解成单独的方法,因为这些确实是逻辑上属于一个整体(如果所有七个都通过了,TC只会“完全通过”)。
我刚开始使用的xUnit,并没有看着理论的东西,但是我认为这是一个更好的方法来做到这一点。 – 2009-12-04 15:31:06
我强烈建议阅读所有从xunit.codeplex.com链接的文章和博客文章 - 这里有一些很棒的东西(并且讨论和功能对于发现为什么*不支持的东西*) – 2009-12-04 15:51:49