Я хочу, чтобы модуль тестировал класс, Class A
, но он имеет зависимость от другого класса, который использует метод user session
. Метод, который я хочу проверить, не включает user session
. Могу ли я создать вспомогательный метод в Class A
, который бы реплицировал поведение метода Class B
, который мне нужен?Наличие вспомогательных методов в классе junit
Я знаю, что это не понятно, давайте копать код, чтобы получить четкое понимание ....
public void testDetails() throws Exception
{
//Some logic that generates DetailsTOList
saveDetailsHelper(DetailsTOList);
int detailsSize = getDetailsSize();
assertNotNull(detailsSize);
}
Теперь getDetailsSize()
прибудет информацию о размере из базы данных. Class B
имеет этот метод, но я не могу создать объект Class B
и протестировать этот метод, так как Class B
получает информацию о сеансе от пользователя, и я могу установить информацию о сеансе из класса JUnit.
Я создал saveDetailsHelper
метод, который повторяет поведение Class B - saveDetails()
метода, и звонит, что в testDetails()
способе, как показано выше.
Мой вопрос:
- мы можем иметь вспомогательные методы в
junit class
? - Что такое лучший подход для решения этой проблемы?
Если вы не можете или не хотите использовать настоящие функциональные возможности класса B в своих тестах, но хотите иметь «как было бы работать» - взгляните на [Концепция Mocking] (http: //www.michaelminella.com/testing/the-concept-of-mocking.html) - это может быть то, что вы ищете – Laimoncijus
+1 для использования mocks. Именно по этой причине mocks были _invented._ –