【问题标题】:Android Unit test method that content CountDownTimer class包含 CountDownTimer 类的 Android 单元测试方法
【发布时间】:2017-07-24 16:40:07
【问题描述】:

问题

java.lang.RuntimeException: android.os.CountDownTimer 中的方法启动未模拟。

即使我已经模拟了它。

这是我的代码

           void mSomething() {
                new CountDownTimer(5000, 5000) {

                    public void onTick(long millisUntilFinished) {
                    }

                    public void onFinish() {
                        //do somethig
                    }
    }.start();
}

这是我的测试

@Test
     public void testSomething() throws Exception {

     CountDownTimer countDownTimer = mock(CountDownTimer.class);
     PowerMockito.whenNew(CountDownTimer.class).withAnyArguments().thenReturn(countDownTimer);

    someClass.mSomething();
    //verify
}

【问题讨论】:

  • 请告诉我们您在@PrepareForTest 注释中的内容——这是PowerMock 中常见的错误来源。
  • @RunWith(PowerMockRunner.class) @PrepareForTest(someClass.class)
  • 你没有准备CountDownTimer
  • 我也尝试过,但仍然遇到同样的错误
  • @MohammedAsmar 你解决了这个问题吗?

标签: android unit-testing mockito powermock android-testing


【解决方案1】:

将此行添加到模块 build.gradle

android {
    ...
    testOptions {
        unitTests.returnDefaultValues = true
    } }

这段代码解决了我的问题

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2016-10-22
    • 2018-06-24
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多