问题标签 [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.
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,所以我怀疑我的错误与我的系统配置有关。任何帮助将不胜感激!谢谢!
java - 使用 Mockito 的通用“any()”方法
我有一个接口,该接口需要一个数组Foo
:
我正在使用 Mockito 模拟这个接口,我想断言它doStuff()
被调用,但我不想验证传递了什么参数 - “不在乎”。
如何使用any()
通用方法而不是编写以下代码anyObject()
?
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 test
mvn 时说没有要运行的测试。但是,如果我从 eclipse 运行相同的测试类,一切运行正常。
难道我做错了什么?
这是我的 pom.xml 下面(相关部分)
这是maven的输出
mvn -Dtest=AlertNotificationsTest 测试
注意:我可以运行其他测试,但我不能运行这个测试。如果我让AlertNotificationsTest
类扩展junit.framework.TestCase
类被 maven 拾取,但它似乎没有被PowerMockRunner
.
这是它的输出:
同样,这些测试在 Eclipse 上运行得很好。
更新我发现了一个可能的问题和解决方法。我有 TestNG 和 JUnit 的测试。如果我从我的 pom 中删除 TestNG 并将我的所有测试迁移到 JUnit,我就可以使用mvn test
. 因此,maven 和 junit/testng 组合似乎存在问题。
我希望能够同时运行两者,但如果我找不到方法,我会去回答我自己的问题。谢谢伙计们
java - Java:可能使用 Mockito 进行模拟测试
我想我没有verify
正确使用。这是测试:
这是它调用的代码:
故障跟踪:
我要验证的电话是几层。有没有不同的方法来检查这个?
java - 当 Java 最佳实践与 Mockito 冲突时该怎么办
我的开发团队已经开始使用Mockito并拥有已定义为“final”的类。我在 Joshua Bloch 的 Effective Java 和 SO 线程When to use final中读到所有类都应该使用 final 修饰符。线程中存在一些分歧,但我确实同意强制类组合的想法,除非继承有意义。
当我想使用像 Mockito 这样要求类没有“final”修饰符的测试框架来测试类时,我应该怎么做? 我希望其他人在他们的开发过程中遇到过类似的问题。您的开发团队达成了哪些决议?
有两个明显的答案,例如使用 JMock 或删除我们要测试的类上的“final”修饰符,但我们想坚持使用一个外部测试框架(JUnit 除外),可能很难说服其他开发人员删除“最终”修饰符。
谢谢。
java - 如何使用 Mockito 模拟 void 方法
如何模拟具有 void 返回类型的方法?
我实现了一个观察者模式,但我不能用 Mockito 模拟它,因为我不知道怎么做。
我试图在互联网上找到一个例子但没有成功。
我的课看起来像这样:
系统不会被模拟触发。
我想显示上述系统状态。并据此作出断言。
java - Mockito:如何通过模拟测试我的服务?
我是模拟测试的新手。
我想测试我的服务方法CorrectionService.correctPerson(Long personId)
。实现尚未编写,但这就是它将做什么:
CorrectionService
将调用一个方法,AddressDAO
该方法将删除Adress
a的一些内容Person
。一个有Person
很多Address
我不确定我的CorrectionServiceTest.testCorrectPerson
.
另外请不要/不要确认在这个测试中我不需要测试地址是否被实际删除(应该在 a 中完成AddressDaoTest
),只需要调用 DAO 方法。
谢谢
java - Mockito:如何在不模拟所有参数的情况下轻松存根方法
我有一个我想存根的方法,但它有很多参数。我怎样才能避免模拟所有参数但仍然存根方法。
前任:
spring - 将 Mockito 模拟注入 Spring bean
为了使用 JUnit 进行单元测试,我想将 Mockito 模拟对象注入 Spring (3+) bean。@Autowired
我的 bean 依赖项当前是通过使用私有成员字段上的注释来注入的。
我考虑过使用ReflectionTestUtils.setField
,但我希望注入的 bean 实例实际上是一个代理,因此没有声明目标类的私有成员字段。我不希望为依赖项创建一个公共设置器,因为我将纯粹为了测试目的而修改我的接口。
我遵循了 Spring 社区给出的一些建议,但没有创建模拟并且自动连接失败:
我目前遇到的错误如下:
如果我将constructor-arg
值设置为无效值,则在启动应用程序上下文时不会发生错误。
java - 使用 Mockito,我如何匹配地图的键值对?
我需要根据特定键值从模拟对象发送特定值。
从具体类:
从测试用例:
如何模拟此键值对的此方法调用?