你好,我有这个PowerMockito测试,它抛出一个μUnfinishedStubbingException
@RunWith(PowerMockRunner.class)
@PrepareForTest(SuperHero.class)
public class SMSActionPresaInCaricoTest {
@Test
public void testExecute() {
PowerMockito.mockStatic(SuperHero.class);
when(SuperHero.findSuperHero(anyString())).thenReturn(new SuperHero ());
Action action = new Action();
action.execute("", "");
}类SuperHero有一个静态方法findSuperHero,它返回从DB读取数据的SuperHero实例。
我认为错误是由于thenReturn试图返回被模拟的类SuperHero的实例。
有办法在这个场景中使用PowerMockito吗?还是有必要进行重构?
发布于 2015-05-02 21:00:12
抱歉,不能复制这个。
下面是我的完整测试类,包括所有的导入:
package com.example;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.mockito.Matchers.anyString;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.junit.Assert.assertNotNull;
@RunWith(PowerMockRunner.class)
@PrepareForTest(SuperHero.class)
public class SMSActionPresaInCaricoTest {
@Test
public void testExecute() {
PowerMockito.mockStatic(SuperHero.class);
when(SuperHero.findSuperHero(anyString())).thenReturn(new SuperHero());
assertNotNull(SuperHero.findSuperHero("Batman"));
}
}我做这个测试的时候,它通过了。
我没有您的SuperHero类,所以我使用了这个类:
package com.example;
public class SuperHero {
public static SuperHero findSuperHero(String name) {
throw new RuntimeException("This method should have been mocked");
}
}我使用的是PowerMockito 1.6.2,以防有帮助。
https://stackoverflow.com/questions/30005408
复制相似问题