0
我有一個相當複雜的集成測試,需要在每個不同的測試用例中提供大量數據。爲什麼我的測試方法不能執行?
我的測試用例類如下:
public class TestCases
{
public static IEnumerable MatchingCases
{
get
{
yield return
new SearchSetup
{
MinimumMatches = 1,
BulletinSetups = new List<BulletinSetup>
{
new BulletinSetup
{
ParameterSetups = new List<ParameterSetup>
{
new ParameterSetup
{
FieldName = "Number",
ParameterName = "@Number",
Value = "TBS1001" + DateTime.Now.ToLocalTime()
}
}
}
},
FilterValues = new Dictionary<string, object> { { "Number", "TBS1001" } }
};
}
}
}
我的測試方法的標題是:
[Test, TestCaseSource(typeof(TestCases), "MatchingCases")]
public void Search_VariableFilter_NoAccountTeam_ResultIncludesExpected(SearchSetup searchSetup)
當我運行測試,它返回定論。當我通過代碼時,我發現正在訪問MatchingCases屬性getter,yield return語句執行w/o問題,但測試方法本身未被調用 - 或者說不是可預測的。
看,我已經寫過這個問題了,然後我試着將測試類移出testfixture範圍。當我這樣做時,代碼執行一次,所以我拋棄了我的問題。然後它停止執行了...
爲什麼我的測試方法不被調用?
編輯:預見到的問題 - 這些都是支持類中使用:
public class ParameterSetup
{
public string ParameterName { get; set; }
public string FieldName { get; set; }
public object Value { get; set; }
}
public class BulletinSetup
{
public List<ParameterSetup> ParameterSetups { get; set; }
}
public class SearchSetup
{
public List<BulletinSetup> BulletinSetups { get; set; }
public int MinimumMatches { get; set; }
public Dictionary<string, object> FilterValues { get; set; }
}
更新 - 第二天
,沒有任何形式的改變關閉和重新加載的Visual Studio,並重新運行試驗後,測試代碼重複執行。我開始懷疑這是一個短暫的故障。