问题标签 [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 投票
2 回答
579 浏览

android - Kotlin:ArrayAdapter 的单元测试 getView 方法

我有以下简单ArrayAdapter的东西,我想在上面运行 UnitTests:

getCount,getItem并且getItemId很容易做到。

但是我怎样才能测试getViewgetDropDownView方法呢?我面临的问题是:

  • 第三个参数viewGroup不能null。如何伪造/模拟这个ViewGroup
  • 两种方法都在调用super.xxx。我怎样才能建立一个when/then构造让它返回一个TextView
0 投票
1 回答
151 浏览

java - Mockito 单元测试 - 错误放置或误用的参数匹配器

我有一个具有 MVP 架构的应用程序,其中包括这两种方法: 在 Presenter 类中:

在模型类中

关键是我想做一个测试来检查articleListinhandleApiResponse是否为 null 它不能进一步编码

我试着用这个测试类来做:

但启动后,我在运行屏幕中收到此错误消息:

0 投票
0 回答
81 浏览

android - Mockito,@Mock 真正反对什么

据我了解,Mockito @Mock 创建了一个带有空方法或方法的存根,否则它们会为每种类型返回一个默认对象。与包装实例的 @Spy 相反,这样您就可以使用实际的实现,但仍然可以模拟某些方法。

但是,我有一个代码,例如:

每当我调试一个测试时,我context就是一个Context@MockitoMock实例,mockConfig一个真实的ConfigUtil实例,因此,调用任何mockConfig方法都会执行真实的ConfigUtil实现。

那么,Mockito 是否只有不在构建中的存根方法?(例如 Android 类)。

--- Q2 ---

在旨在测试真实方法实现的对象中使用 @Mock 是一种好习惯吗?或仅在实例使用的依赖项上。

换句话说,如果我创建了这个ConfigUtil类,并且测试套件是针对那个类的,那么创建那个类的 @Mock 实例是否有意义?

0 投票
0 回答
508 浏览

android - 将高阶函数作为属性传递的测试方法

我试图测试一个具有高阶函数作为属性的方法,我遇到了这个问题:

argumentCaptor<() -> Unit>()在另一个项目中使用,我不知道为什么这个应用程序会出现这个错误。

这是我的测试

0 投票
0 回答
100 浏览

android - 使用 mock-maker-inline 配置时的 Mockito MissingMethodInvocationException

我正在使用 Mockito 在 android 模块中运行测试。mock-maker-inline在为src/test/resources/mockito-extensions文件添加配置之前,我的测试工作正常。但是在添加了这个配置之后,我的一些测试不再工作了。

这是我用来模拟我的课程的代码。

这是个例外

我不需要这个类的 Mockito inline,因为它没有它就可以工作,但我需要它用于同一模块中的其他一些类。任何帮助或建议将不胜感激

0 投票
2 回答
11092 浏览

android - Mockito 无法模拟/监视,因为:Final Class

我知道这个问题被问了很多时间,但是我遵循了很多答案,但仍然没有用

如何用 mockito 模拟最后一堂课

在这个链接中,他们说我们必须添加我们的 gradle :

=> 目前我有

我的 MockMaker 文件中也有这一行:

然后你可以看到我的以下代码:

在我的 UITEST

我的代码有什么问题?我错过了什么吗?

0 投票
1 回答
506 浏览

android - Android Mockito-Kotlin 错误 - “实际上,与此模拟的交互为零”

以下是我ViewModel班级的测试代码。我的应用架构基于 MVI。基本上,我试图模拟我的回购和状态类。在我在下面编写的测试函数中,当我从 API 成功加载新闻列表时,我试图检查状态是否以正确的顺序更改。

但是,当我运行此测试时,我在里面的第一行收到以下错误inOrder(observer){ ... }

这些是我的测试依赖项:

这个错误的原因可能是什么?

编辑——我的RxTestSchedulerRule课:

编辑 2——我的调度功能:

0 投票
1 回答
365 浏览

android - Mockito - 为所有模拟方法设置默认返回字符串值

我有一个类,它有 20 多个返回字符串值的方法。这些字符串与我的测试无关,但是为每个函数设置一个案例非常耗时when->thenReturn,特别是因为这些类中有几个。

有没有办法告诉 mockito 默认空字符串而不是null,或者我希望的任何字符串值?

0 投票
0 回答
37 浏览

kotlin - 间谍高阶函数的类型推断

我正在使用 mockito-kotlin 在 Android 上开发单元测试。

我试图监视一个函数,所以我做了以下代码来做到这一点,它工作正常。

在这种情况下,AndroidStudio 指出强制转换是不必要的,但是当强制转换被移除时,类型会更改为 Foo 而不是 Foo -> Unit:

编译器如何得出类型为 Foo 的结论,以及我应该如何编写代码以避免不必要的强制转换警告?

0 投票
0 回答
1427 浏览

android - Kotlin Coroutines ViewModel Unit Testing with Mockito using Retrofit MVVM throws Null pointer Exception


我尝试对使用 Kotlin 协程进行改造 API 调用的 ViewModel 进行单元测试。单元测试失败,出现空指针异常。
当使用 Retrofit RXJAva UnitTest Passes 进行相同尝试时。使用 Mockito 框架。
请检查我的代码并让我知道我的代码中出现的错误。
请在下面找到 ViewModel 和 UnitTest 类文件:
fetchResponseFromAPI()方法进行 API 调用以获取数据
RetroCoroutineViewModel.kt

RetroCoroutineViewModelTest:


当我尝试运行单元测试用例时,我观察到以下异常:

java.lang.AssertionError:预期:1 实际:null

构建.Gradle: