- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在运行模拟测试时遇到了问题(使用 mockK 和 Kotlin)。
我有几个工作单元测试。昨天我正在测试我实现的功能。但是每当我尝试运行测试时,就会出现这个异常:
io.mockk.MockKException: Failed matching mocking signature for
SignedCall(retValue=, isRetValueMock=true, retType=class kotlin.Unit, self=Observer(#1), method=onChanged(Any), args=[kotlin.Unit], invocationStr=Observer(#1).onChanged(kotlin.Unit))
left matchers: [any()]
at io.mockk.impl.recording.SignatureMatcherDetector.detect(SignatureMatcherDetector.kt:99)
at io.mockk.impl.recording.states.RecordingState.signMatchers(RecordingState.kt:39)
at io.mockk.impl.recording.states.RecordingState.round(RecordingState.kt:31)
此外,如果我尝试使用覆盖率运行测试,android studio 会记录以下错误:
[2021.08.24 12:05:30] (Coverage): Error during class instrumentation: kotlin.text.Regex: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14
[2021.08.24 12:05:31] (Coverage): Error during class instrumentation: kotlin.text.StringsKt___StringsKt: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14
[2021.08.24 12:05:31] (Coverage): Error during class instrumentation: kotlin.text.StringsKt__StringsKt: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14
[2021.08.24 12:05:31] (Coverage): Error during class instrumentation: kotlin.text.StringsKt__StringsJVMKt: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14
[2021.08.24 12:05:31] (Coverage): Error during class instrumentation: kotlin.text.StringsKt__StringNumberConversionsJVMKt: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14
代码只是一个简单的调用检查,这里是一个例子:
@Test
fun onLoginButtonPressed() {
// Arrange
val tObserver: Observer<Unit> = mockk(relaxUnitFun = true)
viewModel.launchLoginScreenEvent.observeForever(tObserver)
// Act
viewModel.onLoginButtonPressed()
// Assert
verify(exactly = 1) { tObserver.onChanged(any()) }
}
我不知道这两个问题是否相关,但在我的案例中它们是一起发生的。
最佳答案
我偶尔遇到的可能情况:
any()
被请求的对象有一个抽象类型参数。MyObject<T>
与调用 any<MyObject<T>>()
相同)verify { mock.method(any<T>()) }
)关于android - io.mockk.MockKException : Failed matching mocking signature for SignedCall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68904766/
在使用Mockk进行Android单元测试时,在声明依赖时使用符号有什么区别? class Test { private val x: X = mockk() private val
这是我的代码片段: @Test fun `request should return anon id if query param present`(@MockK(relaxed = true) re
嗨,我试图模拟我从使用我的演示者类调用的委托(delegate)器从改造返回的 Single observable 获得的响应,并且我收到以下错误: io.mockk.MockKException:
有类似的问题,但没有专门针对 kotlin、mockk 和使用 objectMapper.readValue 读取对象列表的问题。 给定一个方法: fun someMethod(message: Me
我使用以下方法创建了一些模拟: val someService = mockk(relaxed = true) 文件中有多个测试,我希望为每个测试重置模拟 目前 MockK 有办法做到这一点吗? 我知
我正在从 Java 转换到 Kotlin,从 Mockito 转换到 MockK。 我无法将参数匹配器从 Mockito 转换为 MockK。 Mockito 可以执行any() 来匹配任何,包括空值
我想实现一些 UI 测试以确保今天实现的代码明天可以使用,但是当尝试查看过去实现的 UI 测试是否有效时,它会抛出此错误:Caused by: io.mockk.MockKException: Fai
当我尝试模拟挂起内联函数时,看起来 coEvery 挂起。 如果删除内联修饰符,下面的代码有效 storeApi 中的功能:suspend inline fun getAllStores(): Lis
我注意到有时 verify失败,“...调用...发生,但参数不匹配” 这是一个显示验证失败的示例测试: class TestStuff { val stuff = "1" @Rela
我需要模拟对某个类的调用,并使其花费一些时间。 当前代码使用以下代码: every { useCase.execute(any()) } answers { AnswersWithDelay(
我有一个简单的对象,该对象提供了一个暂停功能来模拟延迟的网络请求,然后从该对象调用另一个方法。 class CoroutinesObject { suspend fun doApiCall() {
我正在尝试模拟一个看起来像这样的密封类: sealed class Location class Home: Location{ val name = "Home" } 我希望能够做到以下几点
我正在为我的 Datarepository 层编写一个单元测试,它只是调用一个接口(interface)。 我正在使用 Kotlin、协程和 MockK 进行单元测试。 在 MockK 中,我如何验证
我需要检查我的单元测试中是否没有调用方法。这是我做的一个示例测试,它检查该方法是否被调用并且它工作得很好: @Test fun viewModel_selectDifferentFilter_disp
我正在尝试使用 Mockk模拟对 Locale.getDefault() 的调用,但是我似乎无法让它工作。有没有人用过Mockk mock Locale ? 我非常简单的测试课 @Test fun t
我正在尝试模拟 Android 上下文以从资源 id 返回一个字符串。但是我无法将 stub 与调用匹配,我认为这是因为可变参数。但是我是新手,所以我可能会错过一些非常容易的事情。 我以这种方式模拟上
我正在测试一种方法。它两次请求模拟对象的相同功能,但传递的参数不同。当然,我需要两个不同的答案,但 mockk 为我提供了相同的答案。 every { userRepository.getUser("
我们目前有一个仅由常量值组成的对象。 object Constants { const val VERSION = V1 } 但是,这些常量的值将来可能会更改。因此,如果 VERSION 不满
我有 spyk来自 mockk图书馆: my = spyk(My()) 后来我 mock 一种方法来返回类似的东西: every { my.method("someString") } returns
我正在尝试在 Mockk 的帮助下为我的 View 模型编写单元测试。 @Test fun `When loading the ResponseViewState isLoading`() {
我是一名优秀的程序员,十分优秀!