mysql - Java 단위 테스트는 데이터베이스 부분을 수정하는 코드를 어떻게 테스트합니까?
阿神
阿神 2017-05-17 09:59:03
0
3
580

다양한 데이터베이스 작업에는 해당 단위 테스트를 작성해야 합니다. 검색에는 문제가 많지 않으나, 추가, 삭제, 수정 등의 문제가 발생할 수 있습니다. 프로덕션 환경에서 코드가 실행되기 때문에 실제로 변경할 수는 없습니다. CRUD

지금 생각해 보면 프로덕션 환경의 데이터베이스와 별도로 개발 데이터용으로 또 다른 데이터베이스를 만드는 것이 해결책이라고 생각하는데, 이게 좀 번거롭습니다.

기업의 실제 개발 과정에서 데이터베이스 수정이 필요한 코드의 단위 테스트는 일반적으로 어떻게 이루어지는지 알려주세요.

저는

간략히 소개를 보았는데, 마땅한 해결책을 찾지 못한 것 같습니다. 누구든지 이 분야에 대한 제안이나 정보를 추천할 수 있습니까? mockito

참고:IBM 커뮤니티에서 단위 테스트에 대한 소개를 보았습니다.

단위 테스트는 실행하기 쉬워야 합니다. 단위 테스트 실행에는 구성과 같은 번거로운 작업이 필요하지 않아야 합니다. 단위 테스트 코드에 데이터베이스, 네트워크 등에 대한 액세스가 포함되어 있는 경우 해당 테스트는 실제 단위 테스트가 아닙니다.

한 가지 방법으로 말하자면

그렇다면 데이터베이스 코드를 어떻게 테스트해야 할까요? 单元测试是不允许连接真实的数据库的,所以一切数据库操作都要mock

阿神
阿神

闭关修行中......

모든 응답(3)
伊谢尔伦

단위 테스트는 h2를 사용하여 수행할 수 있습니다. 일반적으로 엔터프라이즈급 개발은 자체적으로 테스트 환경을 갖추고 있으며, 데이터베이스 테스트에는 큰 문제가 없습니다

为情所困
  1. 단위 테스트가 아닌 통합 테스트

  2. h2와 같은 인메모리 데이터베이스는 사용하면 안 됩니다. 이러한 데이터베이스의 구문과 기능이 프로덕션 데이터베이스와 다르기 때문에 테스트 실패가 발생할 수 있습니다

  3. Spring을 사용한다면 공식 Spring 문서에서 통합 테스트에 관한 장을 참고하세요

phpcn_u1582

이 문제를 해결하려면 메모리 내 데이터베이스를 사용하세요. 인메모리 데이터베이스를 도입한 후에는 코드에서 ddl 스크립트와 필요한 초기화 데이터 dml 스크립트를 관리해야 합니다.
단위 테스트를 실행할 때마다 인메모리 데이터베이스를 시작하고 ddl 및 dml 스크립트를 플래시한 다음 단위 테스트 로직을 실행하는 데 권장되는 관리 데이터베이스 스크립트 도구에는 flyway 및 liquibase

가 포함됩니다.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!