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