use*_*435 7 java testing mocking
我正在编写一个测试类来测试我的'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
}
我正在考虑将Builder类的创建移动到受保护的方法中,我可以在测试设置时覆盖它.但是这个解决方案对我来说似乎并不是很好,因为'ImporterService'类正在泄漏一些内部逻辑,并且可以通过我不想要的其他类来覆盖该方法.
如果您使用任何依赖注入库(如 Spring),您可以将模拟对象而不是构建器注入到 ImporterService 类。或者您可以将对构造函数的调用替换为对工厂的调用并使用工厂,这会在测试代码中返回模拟。
| 归档时间: |
|
| 查看次数: |
4506 次 |
| 最近记录: |