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

编写数据源的Junit测试用例

宁欣怿
2023-03-14

我想用mock它来模拟下面代码中的数据源对象,但每次我都得到空指针异常。

@Component
@Transactional
public class ConnectionUtils {

@Autowired
private Datasource data source

public Connection getConnection()
{
     return this.datasource.getConnection();
}

我试过嘲笑数据源和连接,但似乎什么都不起作用。

共有1个答案

景嘉志
2023-03-14

这并不是一个特别有趣的测试,但我希望您能在此基础上再接再厉。模拟连接不是最佳实践,但我不知道有什么简单的实现方法。使用@datajpatest可以更好地实现这一点,下面是一个示例。

@RunWith(MockitoJUnitRunner.class)
public class ConnectionUtilsTest {

    @InjectMocks
    ConnectionUtils connectionUtils;

    @Mock
    Datasource datasource;

    @Mock
    Connection connection;

    @Test
    public void shouldReturnDatasourceConnection() {
        when(datasource.getConnection()).thenReturn(connection);

        Connection actual = connectionUtils.getConnection();

        assertSame(connection, actual);
    }
}
 类似资料:
  • 我是故意在谈论系统测试。我们确实有一套相当详尽的单元测试,其中一些使用了模拟,而这些测试不会去任何地方。系统测试应该是对单元测试的补充,因此,模拟不是一种选择。 如果我将替换为一个test-method(让我们称之为),并引入一个顺序依赖项(使用JUnit 5非常容易),它强制在运行任何其他测试之前运行,那么这些问题就会消失。 到目前为止还好!这看起来和工作很好。当测试不是由CI服务器执行,而是由

  • customer-Mapper.xml daoimpl.java

  • 请注意,我没有访问实际的代码在一个地方,我可以张贴它。 此外,我也限于(由于不幸的原因)使用Spring 3.0.5或3.1.2。

  • 问题内容: 这是我使用的文件: component.xml ServiceImpl.java ServiceImplTest.java 错误: 问题答案: 确保已导入正确的程序包。如果我正确地记住,有两种不同的自动布线套件。应该 : 这对我来说也很奇怪: 这是一个适合我的示例:

  • 我想为SpringRetry编写一个junit测试用例,我像下面这样尝试过,但是junit没有按预期工作。我打电话给MaxAttemptRetryService。重试方法,如果失败,最多必须尝试3次。在这里,Dao正在调用一个rest服务,即停止,因此它最多应该尝试3次。因此道。sam方法必须调用3次。 服务类别: Dao类: 测试等级:

  • 我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5