我想在下面的代码中使用模拟它来模拟数据源对象,但是每次我得到空指针异常时。
@Component
@Transactional
public class ConnectionUtils {
@Autowired
private Datasource data source
public Connection getConnection()
{
return this.datasource.getConnection();
}
我尝试模拟数据源以及连接,但似乎没有任何效果。
答案 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);
}
}