比如对某个新增的dao进行单元测试,那岂不是要真的往数据库中插入一条数据?每次单元测试都新增一条数据?
还有,查询操作,返回一个List的对象集合,怎么判断数据是准确的呢?
对于单元测试,大家有什么好的实践方案吗?
PHP中文网2017-04-18 10:58:06
단위 테스트에서 데이터베이스를 사용할 때 다음 두 가지 옵션을 고려할 수 있습니다.
장기 테스트 데이터베이스를 단위 테스트로 구축하세요. 테스트 시작 전이나 완료 후에 관련 없는 데이터를 삭제하여 테스트의 반복성을 보장하세요. 단점은 여러 사람이 동시에 단위 테스트를 실행하면 단위 테스트가 실패할 수 있다는 것입니다.
인메모리 데이터베이스(예: H2)를 사용합니다. 장점은 관련 없는 데이터를 지울 필요가 없다는 점이다. 단점은 데이터베이스 초기화 과정(테이블 생성문 등)이 단위 테스트에 포함되어야 한다는 점이다. 초기화가 복잡하면 단위 테스트의 효율성에도 영향을 미칩니다.
쿼리 결과를 확인하는 방법은 기본적으로 비즈니스 로직을 기반으로 합니다. 예를 들어 여기서 단위 테스트를 실행하면 쿼리는 확실히 27개의 레코드를 반환하므로 반환된 레코드 수가 27개인지 확인하세요. 다른 경우에는 직접 디자인할 수도 있습니다.