我找不到有助于测试我的< code>ViewModel的解决方案。我一直认为添加规则就足够了:
@get:Rule
var rule: TestRule = InstantTaskExecutorRule()
但我不断得到:
java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details.
我的测试类现在看起来像这样:
@RunWith(MockitoJUnitRunner::class)
class MainActivityViewModelTest {
@get:Rule
val taskExecutorRule = InstantTaskExecutorRule()
val weatherProviderMock = mock<WeatherProvider>()
val sut = MainActivityViewModel(weatherProviderMock, mock(), mock(), mock())
@Test
fun shouldPass() {
assertTrue(true)
}
}
我也有以下在我的应用程序build.gradle:
testImplementation 'junit:junit:4.12'
testImplementation "android.arch.core:core-testing:1.1.1"
testImplementation 'org.mockito:mockito-core:2.22.0'
testImplementation 'org.assertj:assertj-core:3.9.1'
testImplementation 'com.nhaarman:mockito-kotlin:1.6.0'
testImplementation 'org.mockito:mockito-inline:2.22.0'
任何帮助非常感谢。
@克里斯
您能告诉我以下代码是否有问题吗(根据您提出的解决方案):
lateinit var sut: SummaryViewModel
@get:Rule
val rule: TestRule = InstantTaskExecutorRule()
@Before
fun setUp() {
sut = SummaryViewModel(calculatorMock, mock(), mock(), mock(), providerMock, mock())
}
@Test
fun `live data test`() {
val someLiveData = sut.someLiveDataValue
assertThat(true).isTrue()
}
如果在我的案例中没有一个解决方案的工作原理相同,如果您使用的是更高版本的Gradle,并且您正在使用androix,请确保在构建级表中从androix导入。
“androidx.arch.core:核心测试:$version”的实现
代替
实现“android.arch.core:核心测试:$version”
您可以使用 Kotlin 委托懒洋洋地初始化视图模型
:
val viewModel by lazy {
MainActivityViewModel(weatherProviderMock, mock(), mock()...)
}
我目前正在做一个小项目,作为Java测试课程的实习,我们试图看看mocking是如何工作的。 我们的目标是看到我们可以忽略我们所嘲笑的类中的错误。 正如您在Collaborateur中看到的,缺少一个“;”在System.Out之后,exercice的目标是表明嘲笑这个类可以让我们忽略这个错误。我的一些同事使用Eclipse时,使用“以JUnit形式运行”功能没有问题。 在Intellij中,我没
我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。 我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为: 然后在我的@Before测试方法中,我有以下内容: 这是2
本文向大家介绍wpf 视图模型,包括了wpf 视图模型的使用技巧和注意事项,需要的朋友参考一下 示例 视图模型是MV VM中的“ VM” 。这是一个充当中介的类,将暴露model(s)给用户界面(视图),并处理来自视图的请求,例如单击按钮引发的命令。这是一个基本的视图模型: 构造函数创建一个Customer模型对象,并将其分配给CustomerToEdit属性,以使视图可见。 构造函数还创建一个R
我是viewmodel中的一个简单函数getCreditReport,我试图在其中进行API调用存储库层,我想在viewmodel中测试getCreditReport以检查是否调用了存储库,但我收到以下错误 我尝试过的 主要活动视图模型 数据仓库 单元测试 依赖注入组件-如果这有帮助的话 请提出我做错了什么 谢谢R
问题内容: 首先,我是和的新手。 我有一个实例化的类,我想测试一下。 这是我的代码: 我想测试一下我的功能。我的头,我认为测试fs.existsSync的状态是个好主意。如果返回,则必须调用。所以我尝试写一些测试: 但是,我有一个错误: 您能帮我调试和测试我的功能吗? 问候。 问题答案: 出现错误是因为它正在寻找在您的对象上调用的方法,该方法不存在。如果您可以访问测试中的模块,则可以监视如下方法:
问题内容: 我想嘲笑localStorage方法以进行错误模拟。我在Utility.js中定义了localstorage getter和setter方法。我想嘲笑在调用时抛出错误。 开玩笑, 但是模拟永远不会被调用。我也尝试过 问题答案: 这与Andreas在答案中建议的一致,但是我能够使用Storage接口对其进行模拟。我做了这样的事情 开玩笑, 这次公关讨论也很有帮助。