我有使用InlineData和MemberData屬性在XUnit中編寫的測試。我想通過我的項目其他地方的代碼運行測試,並使屬性自動填充測試數據,就像通常在VS測試運行器中運行時一樣。如何通過代碼執行XUnit測試
如果不是屬性,我會直接調用方法,就像任何其他常規方法一樣。斷言仍然被檢查並且它的功能正常。但是如果我直接調用具有屬性的方法,則屬性將被忽略,我必須通過代碼手動提供所有測試數據。 XUnit中有沒有某種類型的測試運行器類,我可以重複使用來實現這一點?我一直試圖挖掘他們的API無濟於事。
爲什麼我想這樣做需要一些解釋,但請耐心等待。我正在編寫針對特定接口的測試,而不是他們的具體實現(例如,考慮標準收集接口)。有大量的測試,我不想複製粘貼他們爲每個具體實施者(可能是幾十)。我編寫測試一次,然後將接口的每個具體實現作爲第一個參數傳遞給測試,這是一個要測試的主題。
但是這留下了一個問題。 XUnit看到了測試並希望運行它,但它不能,因爲在該層沒有可用的具體實現,只有界面。所以我想在更高層編寫測試,剛剛添加了具體的實現,然後調用傳入新主題的接口測試。對於只接受1個參數的主題,我可以很容易地做到這一點,但對於使用InlineData或MemberData的測試,我希望重用已提供的測試用例,並將主題添加爲第一個參數。
出於好奇,你爲什麼要自己打電話給測試方法? – 2015-03-25 03:57:40
我將解釋添加到問題中,因爲它用了超過幾個字的單詞。我希望這是有道理的,我在這裏尋找。 – 2015-03-25 14:08:01