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

在JUnit测试用例中使用Spring BOOT和Mockito自动安装,无需任何上下文配置文件

隆谦
2023-03-14

我正在寻找一种解决方案,在为主bean注入模拟的同时,可以对一些bean使用自动连线注释。我有一些类似这样的类A,我想在测试类中使用自动连线D而不是模拟D。我使用的是spring boot 2.0版。如果有人知道任何解决方案,请告诉我。

   @Repository
   Class A{

     B b;
     C c;
     D d;

     @Autowired
     public A(B b, C c, D d)
     {
           this.a =a;
           this.b = b;
           this.c = c;
      }

}

我试图通过使用Mockito以及一些自动连接的注释来实现这一点。我不想嘲笑D。这种方法不起作用,我想知道我能做些什么来使它起作用。如果有人将Mockito与Autowired注释一起使用。

@RunWith(SpringJUnit4ClassRunner.class)
Class ATest{

   @Autowired
   @InjectMocks
   A a;

   @Mock
   B b;

   @Mock
   C c;

   @Autowired
    D d;
}

共有2个答案

闾丘玺
2023-03-14

我得到了我的问题的解决方案,如果我在对象上使用@Spy注释而不是@Mock来在测试类中类型D,它将调用actual而不是Mock。

杜翰林
2023-03-14

由于您正在尝试编写单元测试,因此您可以使用mockito来运行您已经在使用的操作。

@RunWith(MockitoJUnitRunner.class)
Class ATest{

   @InjectMocks
   A a = new A();

   @Mock
   B b;

   @Mock
   C c;

   @Mock
    D d;
}
 类似资料:
  • 我对junit mockito非常陌生,并尝试使用mockito编写junit测试用例。 这是我的方法,我必须为此编写一个jUnit。 ChefService和ChefApi传递的方法参数来自第三方api 这里是呼叫chefService。listCookbookVersions()将返回CookBookVersion类类型的迭代器,如

  • 问题内容: 我使用JUnit测试以下DAO: 如你所见,sessionFactory是使用Spring自动接线的。当我运行测试时,sessionFactory保持为空,并且出现空指针异常。 这是Spring中的sessionFactory配置: 怎么了?我如何也可以为单元测试启用自动装配? 更新:我不知道这是否是运行JUnit测试的唯一方法,但是请注意,我正在Eclipse中运行,右键单击测试文件

  • 我能够测试代码,但代码覆盖率不包括第二个开关情况。 请参考以下代码。 下面是我的测试代码。 由于我已经声明了一个带有测试值的字符串变量,所以我无法涵盖第二个switch语句。我尝试过if else的情况,但同样的问题发生了。我们还有别的办法吗?

  • 我正在使用Spring 3.1.0。发布和JUnit 4.8.1.我很难弄清楚为什么类的成员字段在JUnit测试中没有自动生成。我的测试看起来像... 类"EventFeed"调用以下类的实例... 但当它出现时,AbstractEventParser的“netUtilsService”成员字段为空。这很奇怪,因为在我的“testApplicationContext.xml”文件中,我有这个,我认

  • 我正在为我的项目创建junit测试用例。我有下面的代码,我想在其中创建一个模拟, 我正在使用jUnit和mockito核心jar。我尝试了下面的代码, 使用上述代码,它在模拟loadProperties方法时抛出错误。如何模拟Spring静态类并返回我的模拟属性对象? 任何帮助都将不胜感激。