问题标签 [mockito-kotlin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
383 浏览

java - Kotlin/Mockito:如何从 kotlin.Annotation 模拟“annotationClass”

我想模拟注释以检查根据给定注释返回结果的类的良好行为。

这是我使用 OneToOne 注释检查良好行为的测试之一:

当我运行测试时,出现以下错误:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue:KClassImpl 不能由 annotationType() 返回 annotationType() 应该返回 Class


如果您不确定为什么会出现上述错误,请继续阅读。由于上述语法的性质,可能会出现上述问题,因为:

  1. 此异常可能发生在错误编写的多线程测试中。有关并发测试的限制,请参阅 Mockito 常见问题解答。
  2. 使用 when(spy.foo()).then() 语法对间谍进行存根。存根间谍更安全-
    • 使用 doReturn|Throw() 系列方法。更多关于 Mockito.spy() 方法的 javadocs。

当 mockito 调用以下代码时会发生此错误:

如果我删除这一行,我可以毫无问题地模拟注解。(模拟 'fetch' 属性效果很好),但我的测试没有通过,因为我需要模拟 'annotationClass'

我不明白为什么我有错误,为什么错误与 annotationType() (java annotation method) 有关?

有谁知道如何解决这个问题?

0 投票
1 回答
116 浏览

android - 如何使用 livedata 对协程进行单元测试

在使用 mockK 学习单元测试的过程中,我遇到了这种情况:

我的视图模型:

虚拟存储库:

如何为 _spinner 编写单元测试,它的值在 refreshTitle 返回后是否发生了变化

提前致谢!

0 投票
3 回答
415 浏览

java - 无法在 Kotlin 中使用 Optional 模拟`willReturn`

我有一个方法

在 Java 中返回 Optional。所以我想在我的 Kotlin 单元测试中模拟该方法调用。

这是我的第一个猜测...

...但编译器说不

类型不匹配:推断类型是 Optional 但 Optional<User?>! 预计

所以我开始做val currentUser: User?只是为了让编译器开心。

类型不匹配:推断类型是 Optional 但 Optional<User?>? 预计

类型不匹配:推断类型是用户?但 TypeVariable(T) 是预期的

现在我有点迷失了。我怎样才能让编译器满意?

0 投票
0 回答
98 浏览

android - Android 单元测试 Mockito 返回 null

我正在使用 Mockito 进行单元测试。

我想测试我的用例和模拟存储库,但有一些问题。

我让我的存储库的函数通过使用 mockito 返回 arraylist。(下面是代码)

并使用模拟存储库创建了用例。(下面也是代码)

SearchUseCase 的代码如下。

接下来,像这样使用这个用例。

我想检查我的模拟存储库是否有效。所以我使用模拟验证,但失败了。

但是下面的另一个测试成功了

我应该直接调用模拟函数吗?

谢谢你的答案。对不起我的英语

以下所有代码

0 投票
0 回答
744 浏览

unit-testing - 如何使用 Mockito 使用 lambda 模拟内联函数

使用 lambda 模拟内联函数时遇到问题。上课UserController,尝试tracer用函数模拟createSpan

用户控制器类:

createSpan内联函数:

试过:

返回org.mockito.exceptions.misusing.InvalidUseOfMatchersException

返回java.lang.NullPointerException

尝试了不同的方法,但只返回org.mockito.exceptions.misusing.InvalidUseOfMatchersExceptionor java.lang.NullPointerException

我怎样才能用 lambda 模拟这个内联函数或忽略它,因为我不想测试这个函数?任何帮助表示赞赏。

0 投票
0 回答
74 浏览

spring-boot - Kotlin mockito 测试之间的冲突

当我一起运行它们时,我的测试类中有几个测试失败了。当我单独运行它们时,它们都运行良好。因此,我在多个测试中重用的模拟值必须存在一些冲突。

这是示例:

我错过了什么?我可以通过调试清楚地看到,当测试开始时,模拟值中有 2 个浆果,而不是在 berriesMapMock 中初始化的 1 个值。所以断言失败,因为结果总共有 3 个浆果,而不是 2 个。其中一个来自另一个单元测试......

我有 @BeforeEach 方法来重新初始化模拟,但是在我的几个测试中问题仍然存在。

0 投票
2 回答
6154 浏览

android - Cannot initialize MockMaker

This is my testing class:

With the following dependencies:

I have created src/androidTest/resources/mockito-extensions/org.mockito.plugins.MockMaker with mock-maker-inline inside.

The test class fails because

How to fix this problem? None of the SO answers helped.

0 投票
0 回答
141 浏览

android - 如何使用 mockito 编写单元测试代码以测试从 android 中的 firestore 检索到的数据?

我对为我的 android 应用程序进行单元测试有点陌生。我已经阅读了一些文档,但仍然不知道如何测试我的“Presenter”类。是否有任何解决方案或样本可用于具有 MVP 架构的 android 中的单元测试?特别是与 Firestore 云相关。

我的Presenter类如下所示:

我想测试一下服务器返回null或成功返回所有数据的情况。这是我的单元测试类:

}

0 投票
0 回答
42 浏览

android - 共享偏好的 Mockito 单元测试

我正在尝试为几个简单的方法进行简单的单元测试,但这是我第一次尝试使用 mockito,所以我真的不明白我做错了什么。

这是我要测试的课程

这就是我在单元测试课上尝试做的事情

}

这是我不断收到的错误

0 投票
1 回答
1025 浏览

kotlin - Kotlin:如何验证在模拟上调用扩展函数

假设我有一个 Java 类 Metrics。我在 Kotlin 的 Metrics 上定义了一些扩展函数

请注意,Java 类Metrics也有一个被调用expose但具有不同签名的方法。

我创建了一个测试,在其中模拟了一个对象并调用了应该调用metrics扩展函数的代码路径。expose但是我怎样才能验证那些扩展函数被调用了呢?

我尝试使用 mockk 和 mockito-kotlin,他们似乎都不知道该对象有一个用不同签名metrics调用的新函数。expose