Mockito无法验证subMethod调用

时间:2017-07-07 23:00:57

标签: android unit-testing mockito robolectric

我在测试方面有点新,所以请耐心等待。

我想测试一下我的onDismiss()方法的行为。我想确保onDismiss()确实调用showDialog()方法。为了做到这一点,我想验证是否正在调用showDialog()中的模拟。 我收到一条错误消息,说没有与该模拟器的交互。如果我使用deBug模式运行它,我看到我们踩了loadingDialog.show()行,我仍然收到此错误。

问题:

  • 我想知道,在这种情况下如何测试subMethod调用?
  • 为什么会这样?

(showDialog()已经包含在单独的测试中)

测试

      sut.onDismiss(mockDialog)
      verify(mockLoadingDialog, times(1)).show();

    public void onDismiss(DialogInterface dialog) {
          showDialog();
    }


    public synchronized void showDialog() {     
          loadingDialog.show();
    }

错误讯息:Actually, there were zero interactions with this mock.

1 个答案:

答案 0 :(得分:1)

import { Component } from '@angular/core';
import { SliderService } from './slider.service';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  val: number = 0; // Initialize your val's value

  next() {
    this.val++;
  }

  reset() {
    this.val = 0;
  }
}

希望这有帮助!

使用@InjectMocks确保在必要时注入模拟,并且您不必在设置中初始化模拟。