使用MockitoJUnitRunner进行Android单元测试

时间:2015-12-25 19:39:35

标签: android unit-testing mockito

我正在尝试在Android Studio中为我的android项目编写单元测试。以下是我的样本单元测试课程。

@RunWith(MockitoJUnitRunner.class)
public class PersistencyTest {

    @Mock
    Context mockContext;

    @Before
    public void setUp() {
        ...
    }

    @After
    public void tearDown() {
        ...
    }

    @Test
    public void test() {
        assertEquals(1, 1);
    }

    @Test
    public void testAddingDocument() {
        assertTrue(true);
    }
}

我收到以下错误:
测试运行失败:测试运行未能完成。预计4次测试,收到2

当我使用AndroidJUnit4.class而不是MockitoJUnitRunner时,没有问题。我想MockitoJUnitRunner希望每个方法都是一个测试方法,并以“test”关键字开头。

我做错了什么?为什么MockitoJUnitRunner无法识别@Before和@After注释?

问候

1 个答案:

答案 0 :(得分:0)

使用Android Studio 1.5.1并创建了一个开箱即用的示例项目我无法重现您的问题。有关测试的相关项目依赖性为'junit:junit:4.12''org.mockito:mockito-core:1.10.19'

  

我想MockitoJUnitRunner希望每个方法都是一个测试方法,并以“test”关键字开头。

如果您使用的是JUnit 4,则使用@Test标记您的测试方法,然后无论您如何命名测试方法。所以 没有 MockitoJUnitRunner没有强加这样的要求。

  

我做错了什么?

由于您的测试代码没有任何问题,并且使用@RunWith(AndroidJUnit4.class)将您的测试标记为JUnit 4测试(AndroidJUnit4),我希望您的项目设置和/或使用的内容必定存在问题的依赖关系。

因此,我的回答,再次检查您的项目设置和/或查看Building Local Unit Tests