【问题标题】:Mockiito wrong return value?Mockiito 错误的返回值?
【发布时间】:2018-07-10 08:30:15
【问题描述】:

您好,我对 newInstance() 方法片段进行了 2 次测试。

但看起来我做错了什么,因为 Mockito 忽略了我的捆绑包值。

    @Test
fun onNewInstanceTest_isNotArchive() {

    val bundle = Mockito.mock(Bundle::class.java)
    Mockito.doNothing().`when`(bundle).putBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE, false)

    val eventPlannerListFragment = EventPlannerListFragment.newInstance(bundle)

    val arguments = eventPlannerListFragment.arguments
    val isArchive = arguments!!.getBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE)

    assertFalse(isArchive)
}

@Test
fun onNewInstanceTest_isArchive() {

    val bundle = Mockito.mock(Bundle::class.java)
    Mockito.doNothing().`when`(bundle).putBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE, true)

    val eventPlannerListFragment = EventPlannerListFragment.newInstance(bundle)

    val arguments = eventPlannerListFragment.arguments
    val isArchive = arguments!!.getBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE)

    assertTrue(isArchive)
}

但看起来这些值被忽略了。

java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)
at com.fs.wfm.ui.EventPlannerListFragmentTest.onNewInstanceTest_isArchive(EventPlannerListFragmentTest.kt:67)

感谢您的建议。

【问题讨论】:

    标签: java android kotlin mocking mockito


    【解决方案1】:

    这些值不会被忽略,您只是没有嘲笑它们。

    Mockito.doNothing()
        .`when`(bundle)
        .putBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE, true)
    

    此行不存储给定键下的true。用这一行你说“当我用指定的参数调用 bundle.putBoolean() 方法时,我希望你什么都不做。” 要模拟查询调用,您需要不同的 Mockito 方法。

    Mockito.doReturn(true)
        .`when`(bundle)
        .getBoolean(EventPlanner.EVENT_PLANNER_IS_ARCHIVE)
    

    另一方面,这一行告诉 Mockito 对带有参数 EventPlanner.EVENT_PLANNER_IS_ARCHIVEbundle.getBoolean() 调用返回 true。

    换句话说,如果您希望查询调用返回存根值,则需要模拟查询调用。

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 2019-02-03
      • 2014-01-16
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多