我有一个 Java 构建器,其初始化位于方法内部,如下所示。
public void doSomething() {
SymphonyClient client = new SymphonyClient.Builder("", password, uname, "");
client.postMessage(message);
}
现在,在编写单元测试用例时,如何模拟 SymphonyClient 对象。
最佳答案
您现在无法模拟 SymphonyClient
,这里有 3 个选项
- 使
SymphonyClient
成为实例字段,并将 throw 构造函数注入(inject)单元测试类。 - 使用mockito Spy 创建包私有(private)方法
getSymphonyClient
和模拟方法。 - 创建一个模拟服务,为您的客户端调用提供有效的 http 响应。
如果构建器是您的基本代码的一部分,您可以创建 setTestInstance
方法并用于单元测试,因为您不想将其公开,您可以将其打包为私有(private)并提供对它的访问仅用于通过在测试文件夹中创建 SymphonyClientTestAccess
来测试类。
关于java - 如何使用 Junit 模拟 Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50393296/