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

kotlin - Kotlin mockito 参数匹配器问题

我正在尝试验证多个论点中的特定论点。我希望验证的其他论点具有简单的性质。但是我希望使用 check { } 来彻底验证它的一个论点。这失败并出现错误。我已经记下了代码和错误。

测试:

}

主题:

错误:

0 投票
1 回答
417 浏览

kotlin - 如何创建 ArgumentMatchers.any(类型:类) 在 Kotlin 中进行测试?

我正在尝试对使用以下服务的类进行单元测试:

我的第一种方法是用来ArgumentMatchers实现单元测试,如下所示:

由于在 Kotlin 中ArgumentMatchers.any()返回null,因此产生NullPointerException了不可为空的类型。所以我尝试使用Mockito-Kotlin库来避免这个问题。该方法如下所示:

使用的库解决了第一个参数的问题,但仍然产生NullPointerException传递的第二个参数。

那么,我怎样才能创建一个ArgumentMatchersforClass<T>类型参数呢?

0 投票
1 回答
996 浏览

android - 如何模拟系统类以进行类型转换

我有以下代码来获取当前系统内存:

我最初的目标是在测试中为它返回一个Int值。像这样的东西:

由于它是一个 jUnit 测试并涉及使用Context,我最终嘲笑了一切:

现在的问题是Mockito无法创建类型转换ActivityManager并抛出此错误:

我也尝试模拟 ActivityManager 但它不能用作类型转换:

在此处输入图像描述

我没有坚持使用当前解决方案的具体要求。我会欣赏一种更好的方法来实现我的初始目标。

0 投票
2 回答
1055 浏览

android - 在 AsyncTask 中测试一个涉及侦听器回调的类

我正在尝试测试在内部触发的侦听器回调AsyncTask

监听类:

包含 AsyncTask 的类:

我正在尝试进行的测试:

我目前遇到的错误:

线程中的异常... java.lang.RuntimeException:在 android.os.AsyncTask 中执行的方法未模拟。有关详细信息,请参阅http://g.co/androidstudio/not-mocked。在 android.os.AsyncTask.execute(AsyncTask.java)

0 投票
1 回答
149 浏览

android - 当模拟对象在 lambda 内部时单元测试失败,但是当它在 lambda 外部并在 lambda 内部使用时工作?

我有一个对话框,我正在使用 Mockito / Mockito Kotlin 进行一些单元测试。

当用户单击对话框时,会向用户显示时间列表,然后他们的选择会分配该值,然后对其进行一些其他工作。

我有一个我模拟的 timeProvider 类,它只返回 currentTime。

这是发生选择的对话框的一部分

当代码在上面时,我的单元测试按预期工作。点击事件里面的逻辑触发,时间设置为currentTime加30分钟。

但是当我在 click lambda 中有 timeProvider 时,它不再起作用并给我一个参数匹配器错误?

我不明白为什么代码可以在 lambda 之外的时间使用,但不能在 lambda 内部使用?

理想情况下,我不会在对话框之前设置它,因为谁知道在点击之前他们实际上会保持打开状态多长时间,而且,我将来可能会遇到这样的问题,不允许这样的解决方法?

0 投票
1 回答
1948 浏览

android - Android Mockito Kotlin 协程测试取消

我有改装服务

它用于android视图模型。

我想写一个取消视图模型的测试。这将通过模拟服务和延迟来完成,以使 co 例程无法完成。在阻塞的同时,我们调用 onCleared 来取消 co 例程。这应该防止状态被设置...

但是似乎 vm.state 总是被设置???清除协同例程被取消的范围时,最好的测试方法是什么?

0 投票
0 回答
813 浏览

unit-testing - Kotlin Mockito 测试异常处理失败

我正在尝试使用 Mockito 在 Kotlin 中为所述处理编写异常处理和测试。由于没有抛出异常,测试失败了,我不知道为什么。看起来他们应该被扔掉,我很难过。

这是有问题的代码示例。

这是测试

我还尝试了在此测试中抛出异常的变体,包括

即使我添加了一个验证异常是运行时异常的 println 语句,在日志消息之后,异常打印但它仍然给我以下结果:

0 投票
1 回答
336 浏览

android - 代码在真实设备中成功运行,但 mockito 想要但未调用

我得到了mockito想要但没有被调用。我不知道该怎么做,因为我是新来的:)。顺便说一句,当我在真实设备中运行代码时,它还可以。

需要但未调用:observer.onChanged(true);

测试类

视图模型类

0 投票
1 回答
1810 浏览

android - 在 kotlin 中为 ViewModel 编写单元测试用例

我正在使用 Junit & Mockito 4 对 viewModel 进行单元测试。

视图模型类

Api 端点

ViewModel 测试类

问题是我的 livedata 被包裹了Event<DataState<List<TrendingResponse>>,因此我无法获得应该是 dataObserver 的内容,以及我应该如何验证测试类中的 dataObserver。

Event os 开放类,用于处理 SingleLiveData 等事件

DataState 是包含 SUCCESS & FAILED 数据类的密封类

我已经编写了测试用例 livedata is likeLiveData<List<Response>或类似的东西。

0 投票
2 回答
2240 浏览

android - 带有模拟和协程的 Android 测试存储库返回 NullPointerException

我有点困惑我应该如何测试这个

我有这个存储库类:

这一行调用了一个数据源方法,该方法返回一个Deferred<Response>对象并等待它 val response = dataSource.fetchAuthenticationFromServerAsync(username, password).await()

当我尝试测试它时,我总是NullPointerException在这一行得到一个完全正确的
这是我的测试类:

日志输出为:

我在这个存储库类上的所有其他函数都是挂起的函数和所有用途withContext(Dispatchers.IO),我能够全部测试它们(其中任何一个调用另一个类)。这是唯一给我这个错误的。

提前感谢您对此的任何见解。