【问题标题】:Android - mockito stub simple variable (not method)Android - mockito 存根简单变量(不是方法)
【发布时间】:2020-03-17 13:14:07
【问题描述】:

我有一个里面有多个变量的类。

SomeViewModel 有一个布尔变量,默认为false

var booleanVariable = false

SomeViewModel 依赖于SomeDataModel

var dataModel: SomeDataModel? = null

测试类

@RunWith(MockitoJUnitRunner::class)
class TestClass {

  @Mock lateinit var someViewModel: SomeViewModel
  @Mock lateinit var someDataModel: SomeDataModel

  @Before
  fun setup() {
    when(someViewModel.booleanVariable).thenReturn(true)
    when(someViewModel.dataModel).thenReturn(someDataModel)
  }

  @Test
  fun shouldShowImportPolicyTest() {
    someViewModel.booleanVariable // return FALSE, not true as stubbed
    someViewModel.dataModel // always returns NULL
  }
}

如果我存根一个方法,它就可以正常工作。我在这里做错了什么?

【问题讨论】:

  • 请在此处发布booleanVariabledataModel的实现。
  • 我更新了。它基本上是成员变量

标签: android kotlin mockito


【解决方案1】:

如果成员变量不是最终的,您可以使用 Mockito 模拟成员变量。

这里有 3 个选择:

  1. 让他们open
  2. 使用依赖mockito-inline 允许对最终类/字段进行模拟
  3. 使用 Kotlin all-open 编译器插件在测试中创建类及其字段 open (https://kotlinlang.org/docs/reference/compiler-plugins.html)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多