몇 가지 간단한 방법에 대한 단위 테스트를 쓰고 있습니다. 내가 겪고있는 문제는 도메인을 조롱해야한다고해도 '저장'이 내 도메인 객체에서 작동하지 않는다는 것입니다. 도메인 객체에서 validate를 호출하면 true로 되돌아옵니다. 심지어 어떤 이상한 오류가 발생하지 않았는지 확인하기 위해 객체를 try/catch로 둘러 쌌습니다. 전화 및 테스트를 위해 아래 코드를 작성하십시오.Grails mockDomain 저장하지 않음 저장
void test()
{
mockDomain(MyDomain)
Map map1= ["asdf":" "]
Map map2 = ["asdf":123]
InputObject input = new InputObject()
input.setForeignId("1") //not a constraint
input.setMap1(map1)
input.setMap2(map2)
service.methodUnderTest(profile)
List list = MyDomain.getAll()
assertEquals 1, l.size() //FAILS
}
def persistPublishGuids(InputObject input)
{
try{
HashMap map1 = input.map1
for (e in map1)
{
String key= e.getKey()
String value = e.value
long size = input.map2.get(key)
MyDomain domain = new MyDomain (id:guid, field1:value, field2:input.foreignId, field3:size)
domain.save()
}
} catch(ex)
{
ex.printStackTrace()
}
}
에게 그것을 참조 테스트의 모든 필드에 대한 설치 기본 데이터하지 않으려면
또한 false로 유효성 검사 플래그를 설정 고려할 가치가있다 이것이 [sscce] (http://sscce.org/)라면 아마도 도움이 될 것입니다. 게시 한 내용은 그 자체로는 실행할 수 없습니다. 문제를 실행하고 재현하여 게시하는 간단한 예제를 만들어보십시오. 그렇게하면 문제의 근원을 밝혀 낼 수 있으며 그렇지 않은 경우 누군가에게 도움을 줄 수있는 훨씬 더 명확한 예가 될 것입니다. – ig0774
내가 원했을 텐데, 알아 냈어. grails를 깨끗하게 실행 한 다음 STS에서 프로젝트를 정리/다시 빌드해야합니다. 오늘 아침에 다른 테스트를 작성하기 시작했을 때 내 도메인 객체 중 하나에 'save()'메소드가 없다고 주장했기 때문에 나는 이것을 발견했습니다. 인터넷 검색을 통해 깨끗하고 재구성 된 솔루션으로 안내했습니다. – Joseph