Я ищу хороший модульный тестовый фрейм, который я могу использовать для моделирования частных методов, которые могут работать под JDK 1.4.2.Mocking java object для модульного теста
Приветствия,
Я ищу хороший модульный тестовый фрейм, который я могу использовать для моделирования частных методов, которые могут работать под JDK 1.4.2.Mocking java object для модульного теста
Приветствия,
Почему бы вам не попробовать EasyMock или Mockito
Попробуйте Mockito и вы будете любить его!
Вы можете посмотреть эту библиотеку в этом blog post, показывая 6 простых примеров использования Mockito.
короткий пример:
@Test
public void iteratorWillReturnHelloWorld(){
//arrange
Iterator i = mock(Iterator.class);
when(i.next()).thenReturn("Hello").thenReturn("World");
//act
String result = i.next() + " " + i.next();
//assert
assertEquals("Hello World", result);
}
Редактировать относительно ваших требований:
Кажется, что Mockito работает достаточно хорошо на Java 1.4 и JUnit 3, как указано в этом blog post ,
Тот же пример, что и выше, но для Java 1.4:
public void testIteratorWillReturnHelloWorld(){
//arrange
Iterator i = Mockito.mock(Iterator.class);
Mockito.when(i.next()).thenReturn("Hello").thenReturn("World");
//act
String result = i.next() + " " + i.next();
//assert
assertEquals("Hello World", result);
}
Там целый ряд насмешливых библиотек для Java:
... и, скорее всего, некоторые другие менее используемые библиотеки, о которых я даже не слышал.
Поскольку ваше требование Поддержка JDK 1.4.2, это, к сожалению, означает, что вы можете выбрать старую версию EasyMock или действительно старую версию jMock. Даже поддержка Java5 закончится через два дня (30 October 2009, that is!), поэтому, если это возможно, попробуйте выйти из эпохи 1.4.2 - вы (и/или ваша компания) просто намного отстают от других и вне любых серьезных технологий поддержка.
Да, моя компания немного отстает от развития технологий. Я надеюсь, что они обновят это приложение, которое я поддерживаю в ближайшее время. – zfranciscus
Никто не взял это, но почему вы пытаетесь издеваться над частными методами? Это почти всегда плохая идея, так как она разрушает инкапсуляцию.
Ну, на данный момент мы находимся в состоянии поддержания приложения, которое написано недостаточно.Некоторые из классов имеют очень большие частные методы, требующие серьезного рефакторинга. В рамках этих усилий мы пытаемся сделать хороший модульный тест вокруг частных методов, а затем медленно прокладываем себе путь для реорганизации этих методов. – zfranciscus
Я до сих пор не думаю, что насмешливые частные методы - хорошая идея, есть и другая техника. Я предполагаю, что у вас есть книга Персов по работе с устаревшим кодом? –
Это мой первый опыт, видящий Mockito ... очень аккуратный. Благодаря! –