Ich versuche einen Komponententest über eine namedquery-Methode zu machen und es funktioniert nicht, da ich die Methode grails.orm.HibernateCriteriaBuilder.createAlias verwende, die nicht scheint von Grails gefunden werden: "Keine Signatur der Methode: grails.gorm.CriteriaBuilder.createAlias ()"Grails Unit Test "CreateAlias" funktioniert nicht
Ich schätze das Problem ist, dass wenn man einen Unit-Test macht und die Klasse verspottet, es versucht, die Methode herum zu finden "grails.gorm.CriteriaBuilder" Klasse und nicht grails.orm.HibernateCriteriaBuilder Klasse, warum ?? irgendwelche Ideen, um es zu lösen?
class Book{
static namedQueries = {
testMethod()
{
createAlias('name', 'james')
}
}
}
@Mock([Book])
class BookTests{
@Test
void myTest() {
Book.testMethod();
}
}
Fehler: Keine Signatur der Methode: grails.gorm.CriteriaBuilder.createAlias ()
Eigentlich benötigen Sie manchmal einen Alias - es ist die einzige Möglichkeit, einen linken Join anzugeben. Also '' 'Book.withCriteria {createAlias ('author', 'a', JoinType.LEFT_OUTER_JOIN) oder {isNull ('a.name') eq ('a.name', 'Fred')}}' 'würde Es ist ziemlich nützlich, testen zu können, aber soweit ich weiß, ist es sowieso nicht überprüfbar - bitte zeig mir, dass ich falsch liege! –