编写DataSource的Junit测试用例

Writing Junit test case of DataSource

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

@Component
@Transactional
public class ConnectionUtils {

@Autowired
private Datasource data source

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

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

这不是一个特别有趣的测试,但我希望你能以此为基础。模拟 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);
    }
}