Нужно ли удалять метакласс после использования mockDomain в модульных тестах Grails? - PullRequest
2 голосов
/ 30 марта 2012

mockDomain предоставляет динамические методы, такие как save(), validate(), ... для класса домена.

Нужно ли удалять мета-классы для каждого класса, над которым я издеваюсьmockDomain?

class UserTests extends GrailsUnitTestCase {

    protected void setUp()
    {
        super.setUp()
        mockDomain User
        mockDomain Address
    }

    protected void tearDown()
    {
        super.tearDown()
        def remove = GroovySystem.metaClassRegistry.&removeMetaClass
        remove User
        remove Address
    }

}

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Вам не нужно этого делать. Метод mockDomain вызывает registerMetaClass, который скрывает текущий метакласс и заменяет новый, так что в tearDown тест может восстановить старый метакласс. Если вам нужно добавить методы в метакласс самостоятельно, вы можете вызвать registerMetaClass (конечно, прежде чем добавлять изменения), и когда тест будет завершен, очистка будет выполнена.

0 голосов
/ 30 марта 2012

Неа. Из любопытства, что заставило вас поверить, что вам нужно это сделать?

...