【发布时间】:2015-03-06 03:55:36
【问题描述】:
在学习了 JUnit 并体验了它对程序员和项目的好处之后,我现在想对每个实体的服务层进行单元测试,并测试每个方法是否正常工作。
到目前为止,我已经为我的所有服务类创建了一个单元测试,但问题是数据源的数据不适合测试。因此,我必须为服务层测试创建另一个数据库,并为服务层的单元测试配置数据源。但事情是我不知道如何配置另一个只有src/test/java 可以访问并且在生产时无法访问的数据源。我对 SpringBoot 和 SpringData 还很陌生,所以我在这里询问如何配置这些要求。
到目前为止,我有这个 application.properties 配置。
spring.datasource.url=<DatabaseURL>
spring.datasource.username=<DatabaseUsername>
spring.datasource.password=<DatabasePassword>
spring.datasource.driver-class-name=<DatabaseDriver>
// another datasource configuration
这是一个服务类的示例代码。其中使用application.properities - dataSource 配置。
@Service
public class FooService {
@PersistenceContext
private EntityManager entityManager;
public List<Foo> findAllByFooForm(FooForm fooForm) {
// JPA CriteriaBuilder query accroding to FooForm
return entityManager.createQuery(query).getResultList();
}
}
最后,这是一个服务类的单元测试示例代码。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class FooServiceTest {
@AutoWired
private FooService fooService
@Test
public void testFindAllByFooForm() {
// Test statements
}
}
【问题讨论】:
标签: unit-testing junit spring-data spring-boot