是否可以告诉 xUnit.netAssert.True()
在一种测试方法中执行所有操作?基本上在我们的一些使用/测试用例中,所有断言在逻辑上都属于一个相同的测试“范围”,我有例如这样的东西:
[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 只有完全“通过”)。