que he escrito el siguiente controlador de Grailsdatos de prueba Grails unión
class CategoryController {
def create = {
def newCategory = new CategoryCommand()
bindData(newCategory, params)
[newCategory: newCategory]
}
}
class CategoryCommand {
String name
String seoName
}
He escrito esta prueba de la unidad para probar el enlace de datos:
class CategoryControllerTests extends ControllerUnitTestCase {
void testCreate() {
// A new ControllerCommand should be returned if invoked with no params
assertNotNull controller.create()
// If called with params, they should be bound
mockParams.name = 'snooker'
mockParams.seoName = 'snooker-loopy'
def model = controller.create()
CategoryCommand newCategory = model.newCategory
assertEquals 'snooker', newCategory.name
assertEquals 'snooker-loopy', newCategory.seoName
}
}
pero me da esta excepción cuando es controller.create()
invocado:
Ninguna firma del método: com.example.CategoryController.bindData() es aplicable para tipos de argumentos: (com.e xample.CategoryCommand, valores) org.codehaus.groovy.grails.web.taglib.GroovyPageAttributes: [[email protected], [:]]
Intenté funcionar esto como una prueba de integración en su lugar, pero El resultado es el mismo.
estoy usando Grails 1.3.6 y no parece ser un campo 'BindDynamicMethod.BIND_DATA_METHOD', por lo que el segundo fragmento de código no funciona. Los enlaces que proporcionó no están funcionando en este momento, por lo que no puedo ver dónde obtuvo esto en –
El primer fragmento de código tiene el inconveniente de volver a implementar en el código de prueba exactamente lo que intento probar, es decir, vinculación de datos –