Grails 2.0-
I am getting “property(subdomain1property) not found on BaseDomain” error when unit testing a controller that uses a named query. The application runs fine and returns correct results but unit test fails.
class BaseDomain {
static namedQueries = {
listDuplicates {instance ->
if(instance instanceof SubDomain1) {
eq('subdomain1property', instance.subdomain1property)
}
}
}
}
class SubDomain1 extends BaseDomain {
String subdomain1property
}
Unit Test for controller has
@Mock([BaseDomain, SubDomain1])
The controller has this line
BaseDomain.listDuplicates(instance)
Moved the specific test case from Unit to Integration Test and that resolved the issue. I will update the answer if I find a way to mock polymorphism in my unit test.