Джунит макет объектов - PullRequest
0 голосов
/ 08 июня 2010

Я новичок в junit, поэтому любая помощь приветствуется.

У меня есть класс с именем sysconfig.java, для которого я написал файл класса junit с именем TestSysconfig.java, который тестирует некоторые методы в sysconfig.java,Метод, который я тестирую в sysconfig.java, вызывает другой файл класса «ethipmapping.java». Я создал макет этого файла класса как Testethipmapping.java.поэтому мой вопрос заключается в том, как мне сказать sysconfig.java для вызова этого фиктивного объекта?

Ответы [ 3 ]

3 голосов
/ 08 июня 2010

вместо того, чтобы смешивать «новые» операторы с классом, который вы тестируете, вам нужно будет передать в вашем тестовом экземпляре ethipmapping класс, который вы тестируете, либо в конструкторе, либо через установщик. Итак, ваш класс, который вы тестируете, будет выглядеть примерно так:

   private EthipMapping mapping;
   public Sysconfig(EthipMapping mapping) {
        this.mapping = mapping;
    }

    public String someMethodIWantToTest() {
        return mapping.doSomeStuffThatReturnsAString();
    }

проблемы, подобные этой, объясняют, почему фреймворки внедрения зависимостей, такие как spring и google guice, так популярны, хотя для простых случаев, таких как приведенные выше, они вам не нужны.

1 голос
/ 13 июня 2010

Вас может заинтересовать Mockito .

0 голосов
/ 08 июня 2010

поэтому мой вопрос: как мне сказать sysconfig.java для вызова этого фиктивного объекта?
Позвонив. Где бы вы ни создавали объект 'ethipmapping' раньше (new ethipmapping ()), вам придется создавать Testethipmapping.

Существуют и другие варианты, не связанные с изменениями в sysconfig.java, но сложно дать конкретный совет, не увидев код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...