2014-04-24 4 views
0

У меня есть метод, который я должен написать JUnit длякак проверить методы использования сторонних классов

public String getSomething(String no) 
    { 
    ThirdPartyClass.Innerclass innerclass = new ThirdPartyClass.Innerclass(..); 
    String result = innerClass.getSomething(no); 
    } 

Я знаю, как установить частные поля в классе, используя Whitebox. Как я могу издеваться над ThirdPartyClass и ThirdPartyClass.Innerclass

+1

Имеет 'ThirdPartyClass.InnerClass' был протестирован? Имеет ли он хорошие результаты для нескольких значений 'no'? Затем вы можете использовать фактическую третью сторону как часть тестового жгута. Тем не менее, попытка провести единичное тестирование прокладок или адаптеров жестко. В вашем примере это может быть слишком тривиально для попытки. –

+0

Возможный дубликат [junit test class для следующего кода] (http://stackoverflow.com/questions/12278593/junit-test-class-for-the-following-code) – Joe

ответ

0

Два варианта здесь.

Первое и самое лучшее - не называть new в методе. Передайте экземпляр фабрики InnerClass конструктору тестируемого класса. Затем издеваются над этой фабрикой.

Во-вторых, используйте насмешливый фреймворк, такой как Powermock, который может перехватывать и высмеивать вызовы конструктора.

Mock Constructor

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