首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配“新MockUp<SomeClass>”找不到的实际方法

匹配“新MockUp<SomeClass>”找不到的实际方法
EN

Stack Overflow用户
提问于 2022-09-27 23:01:43
回答 1查看 38关注 0票数 0

我想运行我的测试,我尝试了许多方法,MockUp x = new MockUp<Hello>调用getMockInstance(),但我总是遇到这个问题。我永远不能用mark @Mark来调用sayHello()?

代码语言:javascript
复制
<junit.version>4.12</junit.version>
<java.version>1.8</java.version>

<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.26</version>
    <scope>test</scope>
</dependency>


<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${junit.version}</version>
    <scope>test</scope>
</dependency>

我的班级:

代码语言:javascript
复制
public class Hello {
    
    public String sayHello() {
        return "hello world";
    }
}

我的测试:

代码语言:javascript
复制
@RunWith(JMockit.class)
public class HelloTest {


    @Tested
    public Hello mock;

    @Test
    public void myOwnTest() {
        new MockUp<Hello>() {
            @Mock
            public String sayHello() { // Method 'sayHello()' is never used 
                return "Mock hello world...!";
            }
        };

        String res = mock.sayHello();
    }
}

控制台:

代码语言:javascript
复制
Matching real methods not found for the following mocks:
EN

回答 1

Stack Overflow用户

发布于 2022-11-25 17:45:50

首先,将自己更新到JMockit的最新版本(1.49) (或者可能是分叉/改进的1.49.2)。小版本修复和改进了很多东西。

其次,"@RunWith“在现代版本中已经消失,取而代之的是javaagent。

看上去你在做一次香草式的嘲弄练习。假设您可以访问它,使用期望值要容易得多,这是因为您有一个@Tested实例。

代码语言:javascript
复制
public class HelloTest {
    @Tested
    public Hello mock;
    @Test
    public void myOwnTest() {
        new Expectations {{
            mock.sayHello();
            result "Mock hello world...!";
        }};

        String res = mock.sayHello();
        assertEquals("Mock hello world...!", res);
    }
}

MockUp方法也会起作用,但这通常只在更奇特的情况下使用(例如,您需要改变某个深层次类的行为,这与您正在测试的内容非常不同)。通常,只适用于不能以其他方式@ some (等)的类。

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

https://stackoverflow.com/questions/73874592

复制
相关文章

相似问题

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