首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerMockito UnfinishedStubbingException

PowerMockito UnfinishedStubbingException
EN

Stack Overflow用户
提问于 2015-05-02 17:36:28
回答 1查看 741关注 0票数 0

你好,我有这个PowerMockito测试,它抛出一个μUnfinishedStubbingException

代码语言:javascript
复制
@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吗?还是有必要进行重构?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-02 21:00:12

抱歉,不能复制这个。

下面是我的完整测试类,包括所有的导入:

代码语言:javascript
复制
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类,所以我使用了这个类:

代码语言:javascript
复制
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,以防有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30005408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档