java - 如何在 Javaa 中模拟新对象的创建
问题描述
我试图在 java 中模拟一个新的对象创建,但无法这样做。
这是代码。
public class testClass() {
private final MyObject myobject;
private SecondObject secondObject;
public testClass(MyObject myObject) {
this.myObject = myObject;
}
public void init() {
secondObject = new SecondObject(myobject,100,100);
}
}
请在此示例中说明如何模拟 secondObject。
解决方案
的设计testClass
使其难以测试(具有讽刺意味)。它依赖于隐藏的第二个类。您最好的选择是公开此依赖项:
interface SecondObjectCreator {
SecondObject create(TestClass obj, int val1, int val2);
}
class TestClass {
public TestClass(MyObject obj, SecondObjectCreator creator);
}
这种重新设计使代码易于测试,因为您可以注入以多种方式运行的模拟。
推荐阅读
- amazon-web-services - AWS EC2 RHEL 从 6 升级到 7
- python-3.x - 在服务器端从 bash 执行 python 时找不到 Python 模块
- javascript - 尝试在没有 OpenGL 的情况下用 Java 制作立方体
- javascript - 我可以将属性(或某种等价物)分配给 Javascript 变量吗?包含示例代码
- backend - 我应该如何制作 URL 路由器?
- php - 从用希伯来语编写的 vbulletin 数据库获取数据,得到奇怪的编码
- tensorflow - 当我在新的自定义 C++ 操作中调用标准操作(例如 MatMul)时,Bazel 返回错误
- sql - WITH clause sub-query has non-unique column names
- isis - Apache isis - 更改欢迎页面
- acumatica - 发布文档后如何创建额外的日记帐分录?