【发布时间】:2016-10-01 19:13:31
【问题描述】:
我对单元测试还很陌生,并且已经在网上阅读了很多资料,但我在搞清楚东西时遇到了一些麻烦。
例如:如果我有以下代码:
public class RandomClass
{
int a = 4;
public void foo(Object obj)
{
if(a == 4)
{
AnotherObject anotherObj = new AnotherObject();
anotherObj.setAttribute(obj.getFiled());
//Method call that will be suppressed
Anotherclass.anotherMethod(anotherObj);
}
}
}
我想过这样写我的junit测试用例:
@Test
public void testFoo()
{
int a=4;
RandomClass randomClass = new RandomClass();
Object object = new Object();
object.setField("hey");
randomClass.foo(object);
}
我有几个问题。 我究竟如何从我的junit设置整数a?我现在设置它的方式对单元测试用例没有任何影响。当我调试单元测试时, a 的值为 NULL 所以它永远不会通过 if 条件!
另外,方法 foo 返回一个 void 那么我可以测试/断言什么?
【问题讨论】:
-
您的代码不正确。如果变量
a在RandomClass中不是静态的,您将无法在静态方法foo中检查其值 -
哦,我明白了,如果 foo 不是静态方法,我如何检查 a 的值?
-
不是junit相关的情况,是访问类字段和封装的情况
标签: java junit mocking mockito