【问题标题】:Writing Junit test case of DataSource编写DataSource的Junit测试用例
【发布时间】:2019-06-14 17:00:05
【问题描述】:

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

@Component
@Transactional
public class ConnectionUtils {

@Autowired
private Datasource data source

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

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

【问题讨论】:

  • 使用构造函数注入而不是字段注入。然后您可以通过构造函数简单地传递(模拟)测试数据源:new ConnectionUtils(your_test_data_source)

标签: spring-boot mockito junit4


【解决方案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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多