PowerMockito UnfinishedStubbingException
PowerMockito UnfinishedStubbingException
你好,我有这个 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("", "");
}
class SuperHero 有一个静态方法 findSuperHero,它 return 是 SuperHero 从数据库读取数据的实例。
我认为错误是由于 thenReturn 试图 return 模拟的 class SuperHero 的实例。
有没有办法在这种情况下使用 PowerMockito?还是需要进行一些重构?
抱歉,无法复制这个。
这是我的完整测试 class,包括所有导入:
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
class,所以我用这个代替:
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,以防有帮助。
你好,我有这个 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("", "");
}
class SuperHero 有一个静态方法 findSuperHero,它 return 是 SuperHero 从数据库读取数据的实例。
我认为错误是由于 thenReturn 试图 return 模拟的 class SuperHero 的实例。
有没有办法在这种情况下使用 PowerMockito?还是需要进行一些重构?
抱歉,无法复制这个。
这是我的完整测试 class,包括所有导入:
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
class,所以我用这个代替:
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,以防有帮助。