2010-06-08 3 views
0

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

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

+5

Ваше имя показывает, почему совершенно непонятно не следовать хорошему набору соглашений об именах. "Testethipmapping"? В самом деле? Ознакомьтесь с условными обозначениями Java: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html. –

ответ

0

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

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

3

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

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

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

проблема, подобное этим, почему зависимости рамка для инъекций, как весной и Google Guice настолько популярна, хотя для простых случаев, как выше вам не нужно.

Смежные вопросы