问题标签 [mockito-inline]

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 回答
58 浏览

unit-testing - android,带有 kotlin 代码的库,在单元测试中使用什么:mockito-inline、mockito-kotlin、mock

拥有将从 java 代码转换为 kotlin 的 android 库项目。

它使用 mockito-all 和 powermock 进行了大量的单元测试和覆盖测试

现在想删除 powermock 并且似乎 mockito-inline 可以用于测试 kotlin 代码和静态成员,但是还有另一个 mockito-kotlin 和 mocki。

看到一些项目使用

kotlin 的推荐依赖项是什么,仅使用 mockito-inline 是否足够好,或者它也应该使用 mockito-kotlin?还是使用 mockito-inline 和 mockk?

0 投票
1 回答
62 浏览

unit-testing - mockito,如何模拟作为容器类成员的类

使用 mockito-inline 如何测试静态函数(使用存根其他静态函数),或模拟/存根一些内部依赖类?

这是示例:

有一个class Utilwhich 内部取决于java.security.MessageDigest

并且容器类有几个静态函数需要测试

想测试Utils.generateId(@NonNull String s)带有存根getStringDigest()返回 null,以便 sometext 预期返回。

因为它是静态函数,所以用 powermock 进行了测试。

使用模拟存根,返回何时Util.getStringDigest()被调用null。它工作得很好。

现在 mockito-inline 支持测试静态函数(并且在测试 kotlin 等时与 powermockito2 混合存在问题),因此删除了 powermock。

尝试使用 mockito-inline 3.8.0

得到错误:

Util.generateId(sometext)回报null(不是)sometext

使用时assertEquals(sometext, sutilMoc.generateId(sometext));无法编译并说无法解析generateId().

如何使用 mockito-inline 测试静态函数?

或者,如果有办法模拟/存根依赖abstract class MessageDigest的存根digest()返回 null,但不知道这是否可能?

0 投票
0 回答
82 浏览

java - 通过 testng 和 mockito-inline 调试时无法在断点处停止(在被测方法上)

我使用 TestNG、Mockito-inline(模拟静态)编写了一个测试用例来测试我的服务(具有被测方法 - MUT)。我的问题是:当我在 MUT 设置断点时,Eclipse 的光标无法在这些断点处停止。如果在测试代码处设置断点,光标会停止并正确突出显示。

我试图回到 Mockito-core(但不能再使用 Mockito-static,相同的版本 3.11.2)然后每个断点(在测试代码和我的服务中)都可以正常工作。

这是详细信息:

一个测试用例:这个测试文件的断点工作正常

我的服务代码:另一个文件(myService)有很多方法(这些方法——myMethodUnderTest调用静态方法myClass.get(int value))

这是我的详细环境:Ubuntu 20.04、Eclipse 2018-12、Java 1.8、Spring 5.1.9、TestNG 7.4.0、Mockito 3.11.2(核心和内联)

我尝试使用 Mockito-inline 3.8.0 但同样的问题。

当我逐步调试(F5,F6)时,Eclipse'cursor 在被测方法中运行时也不正确(仍然突出显示一行但逻辑错误)(在测试代码中运行时仍然正确)。

任何人都可以帮助解决这个问题,使用 Mockito-inline 逐步正确地运行调试。

非常感谢

0 投票
0 回答
41 浏览

java - 无法在 Junit5 Mockito-inline 中以不同的行为模拟同一个类构造函数两次

我有一个 Java SE 项目,我需要为“服务”类添加一个单元测试。

我需要两次模拟对象“Source”的创建,每次方法“getData()”都会返回一个不同的列表。(对于第一个对象列表“accountList”和第二个对象列表“hardwareList”)

我试过:用 Source< Account.class>, Source< Hardware.class> 两次添加 MockedConstruction< Source> construction = Mockito 但它不起作用

有没有办法在 try 块中定义同一个类的两个不同的构造函数行为?

0 投票
0 回答
990 浏览

java - 使用 mockito-inline MockedConstruction 来模拟 FileInputStream 抛出无法初始化模拟构造

我正在尝试摆脱并用新功能Mocking object constructionPowerMock替换它,因为我无法重构旧的源代码。mockito-inline

我的测试课程之一是模拟FileInputStream,被测课程FileViewer

使用 powermock 的原始单元测试是

我试图按照示例Mock Java Constructors With Mockito | 配置和示例 ,并使用 MockedConstruction 创建一个新的单元测试,如下所示

但我得到了以下异常

关于异常原因或如何使其工作或任何替代方法的任何想法?

0 投票
0 回答
101 浏览

java - mockito-inline 可以模拟私有方法吗?

我知道 Mockito (mockito-core) 不能模拟私有、静态和最终方法,但我发现 mockito-inline 可以模拟静态和最终方法。但我找不到它是否可以模拟私有方法。如果可能的话,有人可以提供一个例子。

PS我知道嘲笑私有方法不是一个好习惯。我也知道 PowerMock 可用于模拟私有方法。

0 投票
0 回答
122 浏览

java - InjectMocks 对象上的 Mockito mockStatic

我正在使用 Mockito 3.6 来利用他们的 mockStatic 方法。我在模拟一个也是用于测试的主类的类时遇到问题。

这是我的测试课

由于MainClass使用的是mockStatic和injectMock,所以调用buildURI的时候总是返回null,这在创建HttpRequest的时候是不能接受的。

编辑:为了澄清我的问题,我从环境变量中获取主机和端口,运行此测试时将为空,并且调用new URI()不允许空值。

0 投票
1 回答
30 浏览

android - Mockito-inline 在 RandomAccesFile 上抛出 Stream closed 异常

我的测试代码中有以下几行

像这样的依赖

并得到

这个错误。我尝试了几件事,但没有成功。删除 mockito-inline 不是一种选择,因为有很多测试模拟最终类。有什么可能的解决方案我可以尝试使这件事起作用吗?

0 投票
0 回答
62 浏览

exception - 如何使用 mockito-inline 模拟抛出 IOException 的构造函数?

我如何模拟下一行:

我正在尝试这样的事情,但没有用。

运行测试时出现异常:

有什么想法吗?谢谢,

0 投票
0 回答
12 浏览

android - 覆盖率报告未涵盖大多数行

在我的 Android 项目中,大多数线条不被视为“绿色”、“红色”或“黄色”线条。即使我在调试模式下对它们进行了测试,它们也被覆盖了——它们并没有出现在报告中。下面是一些例子。我使用 IntelliJ IDEA 跑步者

示例 1

示例 2