In a grails integration test, I have code that resembles this:

def ctrlA = new MyController()
... make some request that returns 'ok' ...
assert ctrlA.response.json.status == 'ok'

def ctrlB = new MyController()
... make some request that returns 'error' ...
assert ctrlB.response.json.status == 'error' // fails; status still equals 'ok'

Problem: Even when ctrlB actually does return a json response that looks like { status: 'error' }, I'm actually seeing { status: 'ok' }, the value that was in ctrlA.response.json!! My logs in the controller indicate that 'error' is most definitely being returned.

Why is this?

有帮助吗?

解决方案

Ah. Don't need the separate ctrlA and ctrlB at all. Just call ctrl.response.reset() in between.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top