内容为CountDownTimer类的Android单元测试方法

标签 android unit-testing mockito powermock android-testing

问题

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

尽管我已经模拟过了。

Here is my code

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

                    public void onTick(long millisUntilFinished) {
                    }

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

Here is my Test

@Test
     public void testSomething() throws Exception {

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

    someClass.mSomething();
    //verify
}

最佳答案

将此行添加到模块 build.gradle

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

这段代码解决了我的问题

关于内容为CountDownTimer类的Android单元测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42598039/

相关文章:

java - 使用 android 软键盘更改键入的字符

java - Mockito.spy 不改变真实对象

unit-testing - 使用 Pester 测试 PowerShell 脚本时如何模拟输出文件?

java - 参数匹配器的使用无效

java - 单元测试 HttpURL 连接

android - 如何将 listView 标题添加为自定义布局

android - NDK-构建错误

android 在拖放时滚动

javascript - 如何在测试时正确模拟 useSelector Hook 以返回正确的值?

java - 对具有构造函数和需要使用mockito模拟的 Autowiring 字段的类的方法进行单元测试