В моем случае я расширяю GroovyTestCase, я не использую GrailsUnitTestCase и ControllerUnitTest, так как я выполняю интеграционный тест, а не модульный тест.
Что-то важное - это указать тип контента в вашем контроллере, так как тип контента определяет, что именно связывает для запуска, просто выполните:
controller.request.contentType = "text/json"
Также убедитесь, что у вас есть parseRequest = true в вашем URLMappings.groovy для действия, которое вы пытаетесь протестировать. (Я думаю, что вы уже делаете, так как это работает для вас из интеграционного теста).