我在集成测试 restful 控制器时遇到了一个奇怪的问题......在下面的代码片段中,当我从测试中发出 post 请求时,RestfulController
调用父类的 save 方法而不是子类的 save 方法,MyController
因为他们有不同的签名,这最终会导致UNPROCESSIBLE_ENTITY
响应。
class MyController extends RestfulController<MyDomain> {
static responseFormats = ['json', 'xml', 'hal']
MyController() {
super(MyDomain)
}
def save(MyCommand command) {
...
}
}
当我运行以下测试时,save()
我的控制器父类的操作RestfulController
被执行,从而导致UNPROCESSIBLE_ENTITY
响应,因为我使用的 Command 对象与我的域类不同。
void "Test the save action correctly persists an instance"() {
when: "The save action is executed with valid data"
response = restBuilder.post(resourcePath) {
accept('application/json')
header('Authorization', "Bearer ${accessToken}")
json validJson
}
then: "The response is correct"
response.status == CREATED.value()
response.json.id
Vote.count() == 1
}
请问我能做些什么来解决这个问题?