【发布时间】:2015-11-19 18:12:57
【问题描述】:
我想测试构造函数中传入的参数,例如:
class A {
public void function (String arg1, String arg2) {
C c = new C(arg1, arg2);
//....
}
}
在此,我想测试在创建类C 的对象时传递的arg1 值。有没有办法在不使用 PowerMock 的情况下做到这一点?
【问题讨论】:
-
“测试”是什么意思?你的意思是“验证”吗?如果是这样,那与“模拟”有什么关系?
-
您可以说它是验证,但基本上我需要编写 Junit 测试用例来检查该参数。所以,我在想一种方法来模拟对象的创建并使用 argumentCaptor 来获取参数。
-
不关注。 JUnit 用于执行您的代码并检查正确性,即“如果我使用 this 调用,请确保结果/效果是 that”。 您编写测试用例,例如
new A().function("abc", "xyz")并验证它是否具有预期的效果。 -
为什么要这样做而不是重新设计您的代码以使其更具可测试性,例如通过注入
CFactory之类的? -
感谢您的建议。我想我会重新设计它以利用工厂模式。
标签: java unit-testing testing junit mocking