Spring boot 编写数据源的Junit测试用例

Spring boot 编写数据源的Junit测试用例,spring-boot,mockito,junit4,Spring Boot,Mockito,Junit4,我想在下面的代码中使用mock it来模拟数据源对象,但每次我都会遇到null指针异常 @Component @Transactional public class ConnectionUtils { @Autowired private Datasource data source public Connection getConnection() { return this.datasource.getConnection(); } 我试过模拟数据源和连接,但似乎没有任何效果

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

@Component
@Transactional
public class ConnectionUtils {

@Autowired
private Datasource data source

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

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

这不是一个特别有趣的测试,但我希望您可以在此基础上进行构建。模拟
连接并不是最佳实践,但我不知道有哪种连接的实现方法很简单。使用
@DataJpaTest
可能会更好,例如

使用构造函数注入而不是字段注入。然后,您只需通过构造函数传递(模拟)测试数据源:new ConnectionUtils(您的测试数据源)
@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);
    }
}