编写DataSource的Junit测试用例

时间:2019-06-14 17:00:05

标签: spring-boot mockito junit4

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

@Component
@Transactional
public class ConnectionUtils {

@Autowired
private Datasource data source

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

我尝试模拟数据源以及连接,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

这不是一个特别有趣的测试,但是我希望您可以以此为基础。模拟Connection并不是最佳实践,但我不知道它的任何简单实现者。最好使用@DataJpaTest,例如here

@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);
    }
}