1
我有這是使用Assembly.LoadFrom(...)語句,並返回從衛星裝配支持的區域性方法的方法,所以我怎麼能爲這種類型的方法編寫單元測試。TDD - 如何編寫測試用例,作爲Assembly.LoadFrom(...)
我所做的是,將該靜態方法/邏輯封裝爲在其他類中返回文化並使用它的實例方法。這是正確的方法嗎?
我有這是使用Assembly.LoadFrom(...)語句,並返回從衛星裝配支持的區域性方法的方法,所以我怎麼能爲這種類型的方法編寫單元測試。TDD - 如何編寫測試用例,作爲Assembly.LoadFrom(...)
我所做的是,將該靜態方法/邏輯封裝爲在其他類中返回文化並使用它的實例方法。這是正確的方法嗎?
這是情況嗎?
aMethod(whatToLoad) {
// other stuff
x = Assembly.LoadFrom(whatToLoad);
// code using x
}
第一原則:我們的重點是測試amethod方法(),Assembly.LoadFrom的測試()是一個單獨的問題。當我們爲aMethod()構建測試時,我們不試圖測試它的依賴關係。
那麼我們需要什麼樣的測試?
它如果測試可以提供模擬實現,則最簡單。然後我們可以通過檢查Mock是否收到預期值來測試1。測試2通過返回一個明確定義的值(或多個測試不同的有趣值)測試3通過生成選定的錯誤條件。
所以,你必須改變你的代碼是這樣的:
aMethod(loader, whatToLoad) {
// other code
x = loader.Load(whatToLoad);
// code using x
}
也許加載一些其他的方式注入,但問題是,你現在可以指定不同的測試我設置了一個合適的loaoder。例如,第一次測試。
testLoader = new MockLoaderThatRembers();
tested.aMethod(testLoader, loadThis);
assertEquals(testLoader.getLoader(), loadThis);
所以,如果這是你正在做的事情那麼是的,我會說你啓用TDD。