首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockito的@Mock注释失败的原因

Mockito的@Mock注释失败的原因
EN

Stack Overflow用户
提问于 2015-01-23 11:45:52
回答 1查看 2.2K关注 0票数 2

下面是我的build.gradle的相关内容:

代码语言:javascript
复制
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'

    androidTestCompile "org.mockito:mockito-core:1.10.19"
    androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
    androidTestCompile('com.google.dexmaker:dexmaker-mockito:1.0') {
        exclude module: 'hamcrest-core'
        exclude module: 'objenesis'
        exclude module: 'mockito-core'
    }
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
}

当我使用@Mock注释声明模拟时,它是空的。但当我用

代码语言:javascript
复制
context = mock(Context.class);

然后我得到一个正确的模拟对象。我在Junit-3 TestCase中使用这个,如果这很重要的话。

为什么注释不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 14:56:22

如果使用JUnit 3,则必须在测试中的set方法中使用MockitoAnnotations

代码语言:javascript
复制
public class ATest extends TestCase {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
    }

    // ...
}

注解是无法开箱即用的,您必须指示JUnit做一些事情。对于完整的参考,对于JUnit 4,您有其他推荐的选项:

使用JUnit运行程序:

代码语言:javascript
复制
@RunWith(MockitoJUnitRunner.class)
public class ATest {
    @Mock Whatever w;

    // ...
}

或者使用JUnit规则:

代码语言:javascript
复制
public class ATest {
    @Rule MockitoRule mockitoRule = MockitoJUnit.rule();
    @Mock Whatever w;

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

https://stackoverflow.com/questions/28109204

复制
相关文章

相似问题

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