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

单元测试用例中的Null@autowired beans

轩辕实
2023-03-14
@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(locations = "classpath*:business-context-test.xml")
public class SMSGatewayTest {

    @Autowired
    @Qualifier("mySMSImpl")
    private ISMSGateway smsGateway;

        @Test
        public void testSendTextMessage() throws Exception {
          smsGateway.sendText(new TextMessage("TEST")); 
          //  ^___________ this is null, even though I have set ContextConfiguration 
        }

}

spring管理bean

package com.myproject.business;

@Component("mySMSImpl")
public class MySMSImpl implements ISMSGateway {

    @Override
    public Boolean sendText(TextMessage textMessage ) throws VtsException {
          //do something
    }

}

单元测试用例的上下文

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">


       <context:annotation-config/>
       <context:component-scan base-package="com.myproject.business"/>
</beans>

我看到了许多问题,所有问题都给出了我已经在代码中包含的答案。谁能告诉我我错过了什么。我正在使用IntelliJ14来运行我的测试用例。

共有1个答案

赵奕
2023-03-14

您的代码如下所示:

@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(locations = "classpath*:business-context-test.xml")
public class SMSGatewayTest {
   ..
   ..
}

你真的想使用MockitoJUnitRunner,因为我在课堂上看不到更多的嘲笑。

请尝试用like运行JUnit

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:business-context-test.xml")
public class SMSGatewayTest {
   ..
   ..
}
 类似资料:
  • 我试图实现一个单元测试的在与。 我在关注这个链接,它运行良好,但结果为空,当我用浏览器测试我的websocket时,它会发送所需的结果。 让我展示一下我的测试课 } 这是我的< code > WebSocketConfiguration 类 } 这是我从服务器得到的响应 更新: 在下面的答案中添加建议的更改并经过进一步的研究后,我的测试类现在看起来像这样 } 经过这些更改后,我现在可以将堆栈跟踪打

  • 我有一个spring boot应用程序,它有一个endpoint测试配置类和一个单元测试来测试我的http客户端。我正在尝试从应用程序中获取服务器地址和端口。位于我的src/测试中的属性。(所有类都在我的src/测试中。) 这是我的配置类代码: 我对我的中的值进行了注释。属性,然后创建一个方法,我用bean实例化该方法以返回我的服务器地址字符串。 然后,我在HttpClientTest类中使用该字

  • 我有一个方法如下。 我想为下面的方法写两个测试用例。 1) 提交数据的成功事务 2) 具有回滚数据的失败事务 我如何写一个涉及事务的测试用例,并成功和失败?

  • 我使用textutils.join连接一个字符串列表,但它返回null。我是在一个简单的单元测试中这样做的。 下面是有问题的代码:

  • 我正在为一个单例Java类编写单元测试(使用JUnit和Mockito)。我无法更改类实现本身。 使用PowerMockito,它是这样的(并且工作): 要求重写测试,而不使用PowerMock或PowerMockito或任何其他静态模拟API。由于我不能将单例类更改为使用依赖注入,我不确定什么是这样做的好方法。 任何帮助都将不胜感激。

  • 问题内容: 有没有办法动态创建测试用例?我尝试了以下方法。 ..可以正确创建所有方法(它们显示在并且可以调用),但是unittest的测试检测器也不执行(“ Ran 0 tests in …”) 由于我可能会问错问题-我想实现的目标是: 我有一个文件,其中包含测试数据,输入文件名列表和预期数据(在上述代码中简化为),存储在Python字典中。例如,键是类别,值是测试用例的列表。 目前,我只是遍历所