我想要某個對象的某個方法在運行單元測試時始終返回一定的值。例如。覆蓋方法返回值
- 對象A具有方法A正常返回 「foo」 的
- 對象B實例化對象A和方法B調用方法A
- 單位測試A調用方法B
在單元測試我希望方法A返回「Bar」,但在其他所有情況下,我想返回「Foo」。
我不認爲模擬會起作用,因爲您需要提前提供對象參考(至少在Moq中)。有任何想法嗎?
我想要某個對象的某個方法在運行單元測試時始終返回一定的值。例如。覆蓋方法返回值
在單元測試我希望方法A返回「Bar」,但在其他所有情況下,我想返回「Foo」。
我不認爲模擬會起作用,因爲您需要提前提供對象參考(至少在Moq中)。有任何想法嗎?
嘲笑是用於這種場景的工具。大多數模擬框架將使您能夠在不創建實例的情況下模擬對象A.例如,來自微軟的鼴鼠將使您能夠實現您描述的場景。
如果可能的話,你應該把對象A作爲依賴項傳入對象B.然後你可以使用Moq模擬出依賴關係,並在方法A被調用時返回Bar
。
如果A的對象創建是在B內部完成的,那麼對象B對於這部分是不可測試的(因此爲什麼您應該傳入您的依賴關係)。