ich eine Methode in command class
aufweist, die messageSource.getMessage(...)
verwenden, da Message nicht in die commandClass
injiziert bekommen. Ich verwendegrails Spöck Testen mit Herzinsuffizienz ‚java.lang.IllegalArgumentException: ServletContext nicht null sein muss‘
def messageSource = Holders.applicationContext.getBean("messageSource")
innerhalb der commandClass
.
Mein Problem ist, wenn unit test
diese Methode zu schreiben versucht,
@Before
void setup() {
Holders.applicationContext.getBean("messageSource")
}
void "testFunction"() {
//inside testFunction I am using messageSource
given:
//required things
when:
//call the function
then:
//assert
}
nach Überprüfung dieser Funktion ich den Fehler bekommen
java.lang.IllegalArgumentException: ServletContext must not be null at grails.util.Holders.getApplicationContext(Holders.java:80)
jemand, wie dieses ein vorschlagen kann zu lösen.
aktualisieren
@Validateable
class commandClass {
//required fields and constraints
def formatData(List<commandClass> commandObjs) {
StringBuilder validationErrors
commandObjs.each {commandObj->
validationErrors = new StringBuilder()
if(commandObj.hasErrors()) {
commandObj.errors.allErrors.each {it ->
validationErrors.append(messageSource.getMessage(it, null)).append('\n')
}
}
commandObj.metaClass.validationErrors = validationErrors
}
}
}
Vielen Dank im Voraus
Bitte geben Sie die Befehlsklasse in der Frage? – Ramsharan