问题标签 [mockito]

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 投票
3 回答
3255 浏览

java - Java 问题 - 获取与 Mockito 相关的错误

我正在使用 Mockito 库进行 Java 测试,并在运行测试时在 Mockito 中出现错误。(我正在使用 NetBeans IDE,以防万一)。例如,我有一个名为 Animal 的类,我正在尝试执行以下简单测试:

此测试给出以下错误:

(还有 11 个错误,包括 java.net、java.security、java.lang 和 sun.misc。)

但是,如果我使用真实对象而不是模拟对象执行此测试,则测试成功:

本次测试成功。

我已将 Mockito jar 文件 (mockito-core-1.8.0.jar) 下载到我的项目目录中,然后在此特定项目的测试库中引用 jar 文件的相对路径。我以前从未使用过 Mockito,所以我怀疑我的错误与我的系统配置有关。任何帮助将不胜感激!谢谢!

0 投票
4 回答
358231 浏览

java - 使用 Mockito 的通用“any()”方法

我有一个接口,该接口需要一个数组Foo

我正在使用 Mockito 模拟这个接口,我想断言它doStuff()被调用,但我不想验证传递了什么参数 - “不在乎”。

如何使用any()通用方法而不是编写以下代码anyObject()

0 投票
7 回答
40549 浏览

java - 通过来自 maven 的 PowerMockRunner 使用 Mockito 运行 Junit 和 PowerMock

我无法通过 Maven 运行 Powermock。我是用于驱动 jUnit 测试的 PowerMock Mockito 和 PowerMockRunner。

这是测试:

我没有为运行测试配置任何特别的东西。我的 pom 引用了以下部门:

  • org.mockito | 模拟所有| 1.8.0
  • 君特 | 君特 | 4.6.0
  • org.powermock.modules | powermock-module-junit4 | 1.3.1
  • org.powermock.api | powermock-api-mockito | 1.3.1

当我运行mvn -Dtest=AlertNotificationsTest testmvn 时说没有要运行的测试。但是,如果我从 eclipse 运行相同的测试类,一切运行正常。

难道我做错了什么?


这是我的 pom.xml 下面(相关部分)


这是maven的输出

mvn -Dtest=AlertNotificationsTest 测试

注意:我可以运行其他测试,但我不能运行这个测试。如果我让AlertNotificationsTest类扩展junit.framework.TestCase类被 maven 拾取,但它似乎没有被PowerMockRunner.

这是它的输出:


同样,这些测试在 Eclipse 上运行得很好。


更新我发现了一个可能的问题和解决方法。我有 TestNG 和 JUnit 的测试。如果我从我的 pom 中删除 TestNG 并将我的所有测试迁移到 JUnit,我就可以使用mvn test. 因此,maven 和 junit/testng 组合似乎存在问题。

我希望能够同时运行两者,但如果我找不到方法,我会去回答我自己的问题。谢谢伙计们

0 投票
2 回答
2666 浏览

java - Java:可能使用 Mockito 进行模拟测试

我想我没有verify正确使用。这是测试:

这是它调用的代码:

故障跟踪:

我要验证的电话是几层。有没有不同的方法来检查这个?

0 投票
3 回答
1431 浏览

java - 当 Java 最佳实践与 Mockito 冲突时该怎么办

我的开发团队已经开始使用Mockito并拥有已定义为“final”的类。我在 Joshua Bloch 的 Effective Java 和 SO 线程When to use final中读到所有类都应该使用 final 修饰符。线程中存在一些分歧,但我确实同意强制类组合的想法,除非继承有意义。

当我想使用像 Mockito 这样要求类没有“final”修饰符的测试框架来测试类时,我应该怎么做? 我希望其他人在他们的开发过程中遇到过类似的问题。您的开发团队达成了哪些决议?

有两个明显的答案,例如使用 JMock 或删除我们要测试的类上的“final”修饰符,但我们想坚持使用一个外部测试框架(JUnit 除外),可能很难说服其他开发人员删除“最终”修饰符。

谢谢。

0 投票
11 回答
999871 浏览

java - 如何使用 Mockito 模拟 void 方法

如何模拟具有 void 返回类型的方法?

我实现了一个观察者模式,但我不能用 Mockito 模拟它,因为我不知道怎么做。

我试图在互联网上找到一个例子但没有成功。

我的课看起来像这样:

系统不会被模拟触发。

我想显示上述系统状态。并据此作出断言。

0 投票
2 回答
43846 浏览

java - Mockito:如何通过模拟测试我的服务?

我是模拟测试的新手。

我想测试我的服务方法CorrectionService.correctPerson(Long personId)。实现尚未编写,但这就是它将做什么:

CorrectionService将调用一个方法,AddressDAO该方法将删除Adressa的一些内容Person。一个有Person很多Address

我不确定我的CorrectionServiceTest.testCorrectPerson.

另外请不要/不要确认在这个测试中我不需要测试地址是否被实际删除(应该在 a 中完成AddressDaoTest),只需要调用 DAO 方法。

谢谢

0 投票
3 回答
73339 浏览

java - Mockito:如何在不模拟所有参数的情况下轻松存根方法

我有一个我想存根的方法,但它有很多参数。我怎样才能避免模拟所有参数但仍然存根方法。

前任:

0 投票
23 回答
274690 浏览

spring - 将 Mockito 模拟注入 Spring bean

为了使用 JUnit 进行单元测试,我想将 Mockito 模拟对象注入 Spring (3+) bean。@Autowired我的 bean 依赖项当前是通过使用私有成员字段上的注释来注入的。

我考虑过使用ReflectionTestUtils.setField,但我希望注入的 bean 实例实际上是一个代理,因此没有声明目标类的私有成员字段。我不希望为依赖项创建一个公共设置器,因为我将纯粹为了测试目的而修改我的接口。

我遵循了 Spring 社区给出的一些建议,但没有创建模拟并且自动连接失败:

我目前遇到的错误如下:

如果我将constructor-arg值设置为无效值,则在启动应用程序上下文时不会发生错误。

0 投票
5 回答
47987 浏览

java - 使用 Mockito,我如何匹配地图的键值对?

我需要根据特定键值从模拟对象发送特定值。

从具体类:

从测试用例:

如何模拟此键值对的此方法调用?