我在写一个测试类来测试我的'ImporterService'类。该服务读取一个InputStream并从其数据创建一个Object。 Object,在这个例子中是一个Builder类,在'ImporterService'类中被实例化。为了测试我的'ImporterService'类,我需要验证Builder类上的调用。为此,我想使用Mocking框架,但是如何在'ImporterService'之外创建'Builder'对象的模拟实例?嘲笑内部实例化对象
我“ImporterService”类的方法是这样的:
public Builder importFrom(BufferedReader reader) throws IOException {
String someValue = readFrom(reader);
Builder builder = new Builder(); // I need to mock this Builder object...
builder.someMethod(someValue); // to see of a method is called with the expected value
}
我在想移动的生成器类的创建成一个受保护的方法,我可以在测试的设置覆盖。但是这个解决方案对我来说似乎不是很好,因为'ImporterService'类泄漏了一些内部逻辑,并且可以用其他我不想要的类重写方法。
如果使用好的模拟框架,你不需要在你的单元测试的另一个DI框架中。除非你正在测试你的布线 – 2011-12-15 09:48:50