4
我一直在試圖找到一個解決方案,但無論我一直在尋找與錯誤的搜索條件,或者根本沒有一個答案,我的問題呢。如何使用Moles爲C#中的方法多次調用返回不同的值?
問題: 我有一個方法,我想寫一個單元測試。在這種方法中,存在一個我無法真正解決的外部依賴,所以我將不得不使用Moles來創建我的單元測試。
這個外部依賴包含一個被稱爲多次(兩次)的實例的方法,第二次我想用Moles返回一個不同的值。
...
bool myVar = SomeInstance.SomeMethod(); // Here I'd like to return true
if(myVar)
...
...
bool myOtherVar = SomeInstance.SomeMethod(); // Here I'd like to return false
...
現在通常我把它像
MSomeInstance.SomeMethod.AllInstances.SomeMethod = @this => true;
但我怎麼能有兩個調用不同的行爲?當我在返回「false」之後再寫上一行時,這會「覆蓋」第一行,所以我總是會得到錯誤結果。
任何想法?
這通常會完成工作。您可以組合一個索引和一個IEnumerable以使後續調用按順序返回連續的條目。 –
謝謝,沒有想到這樣的解決方案,很高興它的作品(反正它只是一個特殊情況):-) – Gorgsenegger