我想在我的單元測試中執行TestCleanup,但我需要將參數傳遞給清理方法。但由於默認的TestCleanup被自動調用,我無法傳遞任何參數給它。在TestCleanup中傳遞參數
有人可以請建議一種方法來做到這一點?
我想在我的單元測試中執行TestCleanup,但我需要將參數傳遞給清理方法。但由於默認的TestCleanup被自動調用,我無法傳遞任何參數給它。在TestCleanup中傳遞參數
有人可以請建議一種方法來做到這一點?
你可以使用一個測試類的實例變量的設置,測試之間進行通信,和清除測試方法:
namespace YourNamespace
{
[TestClass]
public class UnitTest1
{
private string someValue;
[TestMethod]
public void TestMethod1()
{
someValue = "someValue";
}
[TestCleanup]
public void CleanUp()
{
// someValue is accessible here.
}
}
}
由於該CleanUp()
方法將每一個單元測試之後運行,someValue
將被綁定到正確的單元測試的上下文。
希望這會有所幫助。
你可以與價值,你認爲你需要通過它應有的參數測試類設置字段,但說實話這是令人驚訝的是,你需要一些參數來清理,並至少對我來說這將是一種測試中出現問題的氣味。
你的單元測試不需要清理,每個測試都應該負責自己的設置,並且應該單獨運行。
如果您的集成測試有一些需要清理的外部依賴關係,那麼您可以按照我的建議使用一個字段(您可能會在每次測試開始時設置一個字段(以便清理功能可以知道如果測試失敗要清理什麼)在測試之後是清理的正確值),或者我會做一個明確的清理函數(它接受了所需的參數),並在最後明確地由每個測試調用,並且然後讓的TestFixture清理確保清理可能已被使用的情況下,測試它們中的任何失敗,沒有把他們的清理方法的任何 ALL數據。
存在測試設置和清理方法的原因是,您可以封裝所有測試的常用設置和清理邏輯。這不是封裝單元測試特定的邏輯。 – Zorayr
如果您張貼一些代碼,您正在使用的,這將有助於回答你的問題。 –