내 규칙은 내가 쓴 것을 테스트하는 것입니다. 따라서 사용자 정의 메서드 (또는 클로저)를 작성하면 해당 메서드를 단위 테스트합니다. 이 규칙은 제약 조건을 작성했기 때문에 제약 조건을 테스트한다는 것을 의미합니다. 이를 위해 GrailsUnitTestCase에서 mockForConstraintsTests() 메소드를 사용합니다.
예 제약 차단 :
static constraints = {
location(blank:true, nullable:true)
make(blank:false, nullable:false)
name(blank:false, nullable:false)
serviceTag(nullable:true)
purchaseDate(blank:false, nullable:false)
checkedDate(blank:false, nullable:false)
warrantyExpirationDate(nullable:true)
notes(blank:true, nullable:true)
}
나는 다음과 같은 제약 단위 테스트를 할 것이다 :
void test_null_constraints_are_checked() {
mockForConstraintsTests(Hardware)
def hardware = new Hardware()
assertFalse hardware.validate()
assertEquals 4, hardware.errors.getFieldErrorCount()
assertEquals "nullable", hardware.errors["name"]
assertEquals "nullable", hardware.errors["checkedDate"]
assertEquals "nullable", hardware.errors["purchaseDate"]
assertEquals "nullable", hardware.errors["make"]
}
이 바로 내 제약에 오타를 잡을 것입니다.
도메인에서 저장, 생성, 업데이트, 삭제를 테스트하지 않습니다. 이것이 실패하면 나는 더 큰 문제가있다!
관계 1-M 등을 테스트 해 보시겠습니까? –
유닛에서 직접 테스트했다고 말할 수는 없습니다. 나는 보통 통합 수준에서 그것들을 선택한다. – zentuit