使用 Mockito 进行模拟测试的含义是啥 [重复]

Posted

技术标签:

【中文标题】使用 Mockito 进行模拟测试的含义是啥 [重复]【英文标题】:Whats the meaning of mock test using Mockito [duplicate]使用 Mockito 进行模拟测试的含义是什么 [重复] 【发布时间】:2020-04-03 08:09:53 【问题描述】:

使用 mockito 时,我想我应该使用 when().thenreturn 来自定义返回值,即使这与真正的方法不同。我只是很困惑,如果一切都是模拟的(或假的?),mockito 如何测试该方法是否真的有效?

【问题讨论】:

它没有。这就是为什么你不能模拟一切。这也意味着有些人编写的测试完全没用,但他们甚至不明白为什么。测试本身就是一种艺术形式,所以即使你可能擅长编程,也不要认为你是一名优秀的测试人员。 不熟悉Java或mockito,但通常你不会mock你要测试的方法。您模拟对您要测试的代码段范围之外的其他类/函数/API 的调用。这样做的目的是确保您要测试的代码独立于外部代码是否有效。 【参考方案1】:

通过使用 Mokito,您可以模拟依赖调用,并且可以指定返回值,这样当实际的方法调用发生时,您将获得指定的值。

进行模拟的主要原因是我们不想执行数据库调用或网络调用或其他在测试用例执行期间可能可用或不可用的后端工作。

【讨论】:

是不是像我在尝试测试List的方法时,比如List,但是Student类有很多依赖,仅仅mock一个Student实例就可以做到这一点?

以上是关于使用 Mockito 进行模拟测试的含义是啥 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java应用使用Mockito进行模拟和测试桩

如何使用 Mockito 模拟由 Spring 应用程序上下文创建的对象以进行单元测试覆盖?

使用 Mockito 模拟服务器

Android单元测试之Mockito的使用

Junit/Mockito:选择使用模拟或集成测试运行测试

使用 mockito 对插入方法进行单元测试