当前位置: 首页 > 知识库问答 >
问题:

使用MockitoJunitRunner.class而不是SpringJunit4ClassRunner.class

田博远
2023-03-14

我是说替换

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-applicationContext.xml" })

只要

@RunWith(MockitoJUnitRunner.class)

在班上名列前茅。对我有用。

@RunWith(MockitoJUnitRunner.class)
public class TestServiceA {
    @Mock
    B mockObj;

    @InjectMocks
    A realObj;

    @Test
    public void testServiceA() {
    .....
    .....
    }
}       

请给出你的建议。

使用SpringJunit4ClassRunner.class而不是MockitoJunitRunner.class

共有1个答案

濮阳耀
2023-03-14

如果您试图像您描述的那样简单地单元测试一个没有依赖项的类,那么就不需要SpringJunit4ClassRunner。这个运行程序能够生成一个完整的Spring上下文,其中包含您可以在(测试)应用程序上下文配置中定义的(模拟)对象。使用这种机制,SpringJunit4ClassRunner比常规的MockitoJunitRunner慢得多。

SpringJUnit4ClassRunner对于集成测试非常强大。

我默认从MockitoJunitRunner开始,如果我达到了这个runner的限制,例如,因为我需要模拟构造函数、静态方法或私有变量,我就切换到PowerMockJunitRunner。对我来说,这是最后的手段,因为它通常告诉代码是“坏的”,不是为了测试而编写的。对于独立的单元测试,其他运行程序通常不是必需的。

 类似资料:
  • 问题内容: Javascript 1.9.3 / ECMAScript5引入了DouglasCrockford等人提倡很长时间的技术。如何在下面的代码中替换为? (假设存在)。 我能想到的最好的是: 似乎没有任何优势,所以我想我没有。我可能太新古典了。我应该如何使用来创建用户“ bob”? 问题答案: 仅具有一个继承级别,您的示例可能无法让您看到的真正好处。 通过此方法,您可以轻松实现 差异继承

  • 问题内容: 每当我读到关于使用Scala的作者通常提的是演员,而应使用(此举例)。虽然我大致了解了Actor的工作原理,但我真的很想看到一个Actor的示例,该示例被用来在一段代码中替换Java的方法修饰符(这意味着它的Scala等效项- 块)。例如,修改数据结构的内部将很高兴。 这是对Actor的很好利用,还是我被误导了? 问题答案: Actor保证一次只处理一条消息,这样就不会有两个线程访问任

  • 问题内容: 到目前为止,我一直在使用: 谢谢 编辑:我为可能遇到此页面的任何人提供了一种解决方案,以演示如何使用POST而不是GET。如果您不熟悉AJAX,建议您首先使用GET方法向本教程http://www.w3schools.com/PHP/php_ajax_php.asp推荐。 解- javascript: 的PHP: 由于有关使用POST和GET的原因-请参见注释。 问题答案: 您显示的查

  • 问题内容: 我有看起来像这样的XML: 我想使用JAXB进行阅读。 我知道我能做 如果XML看起来像 ,但是我对上面的XML布局怎么办? 问题答案: 注意: 我是EclipseLink JAXB(MOXy)的负责人,并且是JAXB 2.X(JSR-222)专家组的成员。 您可以在此用例中使用MOXy的扩展名:

  • 我试图导入的应用程序中的gradle版本与JDK11不兼容,而JDK11正是android studio用作其嵌入式JDK的。我的机器上有JDK8。我已经尝试进入项目结构来更改JDK8位置的路径,但是如果我尝试更改它,就会出现错误。它说我必须选择一个有效的JDK11目录。如何让android studio使用JDK 8?错误截图

  • 问题内容: 我不确定这是否可能。但是我想知道是否有人知道如何使超链接传递一些变量并使用POST(如表单)而不是GET。 问题答案: 您使用隐藏的输入创建表单,这些输入包含要发布的值,将表单的 操作 设置为目标url,并将表单方法设置为 post 。然后,当您单击链接时,触发提交表单的JS函数。 有关示例,请参见此处。本示例使用纯JavaScript,没有jQuery-如果您不想安装比现有更多的东西