【发布时间】:2016-03-05 17:42:15
【问题描述】:
我正在尝试测试一个类 CallingClass.java。这个类创建一个类 AddClass.java 的新实例,并使用这个实例调用 AddClass.java 中存在的函数“add”。我想模拟这个函数'add'的行为,我使用了powermock,我模拟了实例变量的创建,但是这个模拟仍然没有被使用。
这里是代码
AddClass.java
package com.samples;
public class AddClass {
public int add(int a,int b)
{
int c;
c=a+b;
return c;
}
}
CallingClass.java
package com.samples;
public class CallingClass {
public int Calling_function(int a,int b)
{
int x;
AddClass adding=new AddClass();
x=adding.add(a, b);
return x;
}
}
CallingClassTest.java //这是测试类
package com.samples;
import static org.junit.Assert.*;
import org.junit.Test;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.modules.junit4.PowerMockRunner;
public class CallingClassTest {
@Test
public void testCalling_function() {
int actual;
int a=5;
int b=4;
AddClass aobj=Mockito.mock(AddClass.class);
PowerMockito.when(aobj.add(a, b)).thenreturn(10);
PowerMockito.whenNew(AddClass.class).thenreturn(aobj);
CallingClass c=new CallingClass();
actual=c.Calling_function(a, b);
assertEquals(10,actual);
}
}
谁能告诉我应该如何模拟 AddClass.java 中存在的函数“add”的行为
【问题讨论】:
-
这还能编译吗?
-
你读过funny manual吗? 乍一看我会说缺少一些跑步者和@PrepareForTest
标签: java unit-testing junit powermock