Тестирование сервиц класса

 
0
 
Java
ava
ShurikA | 01.10.2013, 12:21
Привет всем!

Давно тут не был...

Начал я играться с Grails, и главным образом с тестами. И я не совсем понимаю логику.

Есть следующий сервис класс:

package imagery

import grails.transaction.Transactional

@Transactional
class MediaPersistanceService {

    def method() {
        return "test string"
    }
}


И тест к нему:

package imagery

import grails.test.mixin.TestFor
import grails.test.mixin.services.ServiceUnitTestMixin

/**
* See the API for {@link grails.test.mixin.services.ServiceUnitTestMixin} for usage instructions
*/
@TestFor(MediaPersistanceService)
class MediaPersistanceServiceTests{

    def setup() {
        
    }

    def cleanup() {
    }

    public void testMethod() {
        //service = new MediaPersistanceService()
        
        System.out.print("In Test")
        
        assert service.method() == "test string"
    }
}


если внимательно прочесть доки, то там есть следующее:
Цитата


The TestFor annotation defines the class under test and will automatically create a field for the type of class under test. For example in the above case a "controller" field will be present, however if TestFor was defined for a service a "service" field would be created and so on.



И так оно и есть, в объекте тест класса создаются поле "service", но оно NULL. Вроде как не страшно, можно создать прямо в тесте... Но если я создаю объект сервиса в тесте и приравниваю к тому самому полю "service" (закоментированная строка) то я получаю:

groovy.lang.ReadOnlyPropertyException: Cannot set readonly property: service for class: imagery.MediaPersistanceServiceTests


Что я упускаю? Мне казалось что если создаётся поле, то я могу с ним работать или же как и многи вещи в Grails, оно автоматом болжно получить тестируеммый объект.

Спасибо за совет.
Comments (0)

Comments are not added

Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  ShurikA
advanced
Submit