1
許多模擬框架具有驗證方法是否被調用的功能。但是大多數框架都要求代碼遵循依賴注入模式。測試:如何驗證一個方法被調用?
我試圖測試的代碼不使用依賴注入模式,因此無法注入對象的模擬。
典例:
public class TestMeClass {
public void TransformMe() { }
}
public abstract class SomeeClass {
public SomeMethod() {
CallMeMethod();
}
private void CallMeMethod() {
TestMeClass testMeClass = new TestMeClass();
testMeClass.TransformMe();
}
}
我如何驗證(單元測試)是TransformMe()
叫?
它可以使用反射`? (語言是C#)
Jon Skeet我需要你。
這種方法難以測試,因爲在父類本身內正在初始化依賴項。 – Nkosi
這真的不可能。如果你想測試你的SomeeClass Logic的行爲是否應該,你需要以某種方式注入一個TestMeClass的實例,以便你可以監視它的方法。 – axlj
我猜如果你使用'mock'庫,你可以使用'verify'方法。看看[這個](http://stackoverflow.com/questions/9841623/mockito-how-to-verify-method-was-called-on-an-object-created-within-a-method) – esiprogrammer