问题标签 [springmockito]

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

java - 如何模拟 Springockito 模拟的行为?

如果我使用 Springockito 在我的 spring 上下文文件中创建一个模拟,如此处所述我如何模拟它的一些行为?

我正在尝试做的事情:

  1. A 类正在测试中。
  2. ClassB 在 ClassA 中自动装配。
  3. ClassB 被 Springockito 嘲笑。
  4. ClassA 需要 ClassB 在其 PostConstruct 中做某事。
  5. 我需要模拟 ClassB 来做这件事,因为它不能也不应该真的这样做。

在不使用 Springockito(直接使用 Mockito)的情况下这样做是直接的,但我需要自动装配这些 bean 并在我的测试中使用 Spring。任何帮助表示赞赏。

0 投票
1 回答
4318 浏览

java - @ReplaceWithMock 不使用 Springmockito-annotations 进行模拟

我有一门课,我正在尝试单元测试。我正在尝试使用 Mockito 对其进行测试,并使用 Springockito 和 Springockito-annotations 来解决使用 mockito 的弹簧注入。

如果我删除@ReplaceWithMockprivate RestOperations restTemplate行,那么它会进行正确的调用,并且可以验证该值是否正确。但是,我想在处理器内部模拟 RestOperations 对象,但使用 @ReplaceWithMock 会使 restTemplate 变量为空,导致它失败。我无法弄清楚如何隔离这个成员并模拟它。

0 投票
2 回答
587 浏览

java - 在 factoryBean 返回实例之前如何处理 bean?

我发现在调用 factoryBean.getObject() 之前对 bean 进行后处理是不可能的。'resultingBean' 是一些在开始时初始化的 bean 的依赖项,因此它首先被实例化。请参阅在“MyFactoryBean”中构造“resultingBean”之前,我需要“myBeanPostProcessor”来处理“myBean”。lazy-init 和 depends-on 都没有帮助。无论如何,总是首先调用“MyFactoryBean.getObject()”。

知道如何处理吗?我故意选择 BeanPostProcessor 是因为此要求应处理在 junit @Before 方法之前设置 mocito 模拟...问题是在 @Before 方法中设置这些模拟为时已晚,因为您需要在上下文时使用它们初始化。

没有很多方法可以做到这一点,包括 ExecutionListeners、ContextLoaders、BeanFactoryPostprocessor、Runner 等等。

我正在使用springockito来模拟我的豆子。

这是完美的弹簧测试框架的一个小缺点。

0 投票
1 回答
609 浏览

spring-mvc - Mockito... 春季测试

这是我的测试课..

我的问题是,当我设置它时,第一个测试通过,因为验证是正确的 isValid 被调用了一次,但是第二个失败,因为现在验证抱怨要求 isValid 被调用了两次。我希望 mockito 上的 reset 方法重置每次测试后调用计数..

有人有什么建议吗?

0 投票
1 回答
211 浏览

springmockito - Springmockito 通过 XML 支持存根

我正在尝试使用 Springockito 网站上描述的第二个示例: https ://bitbucket.org/kubek2k/springockito/wiki/Home

但是,当调用其中一个 Mocks getter 方法时,如何对 Mock 进行存根,以便它返回我想要的内容?通过 XML 似乎不可能?

0 投票
1 回答
2831 浏览

unit-testing - JUnit 测试:never() 和 times(0) 之间的区别

我只想知道 JUnit 测试中 times(0) 和 never() 有什么区别。

例如,我有用于在 mongoDB 中保存数据的测试行代码:

如果我把它写成:

两个测试都表明没有调用 save 方法。(如果我错了,请纠正我)这两者有什么区别吗?

0 投票
5 回答
26820 浏览

java - 如何模拟 JdbcTemplate.queryForObject() 方法

我的方法如下所示:

请建议我将如何嘲笑这一点。

0 投票
1 回答
3695 浏览

springmockito - 如何在方法java(mockito)中模拟来自另一个类的返回值

我是 mockito 新手,我想为用户验证进行单元测试。请在下面找到我要执行单元测试的方法:

正如您在上面看到的,isUserValid 方法返回一个布尔值,而我要测试的方法返回一个 ModelAndView。

请看我下面的单元测试:

当我运行单元测试时,出现以下错误:

org.mockito.exceptions.misusing.WrongTypeOfReturnValue: validateUserLogin() 不能返回 ModelAndView validateUserLogin() 应该返回布尔值


如果您不确定为什么会出现上述错误,请继续阅读。由于上述语法的性质,可能会出现以下问题,因为: 1. 此异常可能发生在错误编写的多线程测试中。有关并发测试的限制,请参阅 Mockito 常见问题解答。2. 使用 when(spy.foo()).then() 语法对 spy 进行存根。使用 doReturn|Throw() 系列方法来存根间谍更安全。更多关于 Mockito.spy() 方法的 javadocs。

有什么想法可以解决这个问题吗?

0 投票
1 回答
9601 浏览

spring-mvc - java.lang.NullPointerException 当我运行我的单元测试 - 模拟

我有一个spring mvc应用程序并使用mockito进行单元测试。运行单元测试时,我不断收到空指针异常。:(

请在下面找到我的单元测试将基于的方法:

请在我的单元测试下面找到:

当我运行上面的单元测试时,请在下面找到堆栈跟踪错误消息:

基本上下面显示的第 99 行根据堆栈跟踪返回 null:

任何想法为什么我在这一行上得到空指针?但是当我运行我的应用程序时它工作正常并且failLog消息显示在我的页面上。

提前致谢。

0 投票
1 回答
10043 浏览

java - 如何使用 mockito 测试 ehcache?

我的辅助方法使用 ehcache,以减少对 Db 的查询。现在想实现JUnit+Mockito测试,确保ehcache正常工作。有这样的测试变体:

测试方法是:

这非常有效。在测试中,我确信在调用方法后我会在缓存中得到一些东西。如您所见,我还验证了在 db 服务中调用方法 getAllItems。这对于第一次调用很有用。接下来,我在同一个测试中添加了对 discountHelper.getAllDiscountsUsingCache() 的第二次调用,如下所示:

所以我只想检查在第二次调用时不会通过方法 getAllItems 通过此验证调用 DB 服务: verify(service, times(0)).getAllItems(eq(Discount.TABLE_NAME)); 并且结果将从缓存中获取。

但它不起作用,我仍然调用 DB 方法。我找到本教程http://blog.goyello.com/2010/07/29/quick-start-with-ehcache-annotations-for-spring/并尝试使用委托对象进行 ehcache 测试的变体,但它仍然调用 db 方法在测试。怎么了?顺便说一句,正如我在 tomcat 的日志中看到的那样,在生产环境中 ehcache 工作得很好,所以这是一个测试问题。任何建议如何解决它?