是否可以告訴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