Независимые тесты JUnit с помощью Springs @Autowired

Как новичок в разработке через тестирование, я только что столкнулся с проблемой. Мой тестовый класс начинается следующим образом:

@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@DirtiesContext
@ContextConfiguration(locations = {"/web-test.xml"})
public class XXTest {

  @Autowired
  XX xx;

  @Autowired
  HibernateTemplate template;

  @Test
  public void testSetGetXXValue() throws Exception {
    final Map profilMap = new HashMap(2);
    profilMap.put("1", new YY());
    profilMap.put("2", new YY());

    simpleCockpit.setValues(profilMap);

    assertEquals(profilMap, simpleCockpit.getValues());
  }

Как вы можете видеть, первый тестовый метод изменяет автоматически подключенный XX-класс. Это влияет на все следующие методы тестирования, которые основаны на том, что XX имеет автоматически подключенные значения.

Как я могу проверить геттер и сеттер из XX И убедиться, что XX имеет автоматически подключенные значения для остальных методов тестирования?

Мысли:

  • Сбросить правильные значения в конце тестового метода. Плохо, потому что, если геттер / сеттер не работают, это тоже не сработает.
  • Поместите первый тестовый метод в конец тестового класса. Плохо, потому что это делает тесты, зависящие от порядка их выполнения.
  • Не тестируйте геттер / сеттер XX. Плохо, потому что геттер / сеттер нужно тестировать, как и любой другой метод.

Спасибо за ответы! Я почти уверен, что это простой решение ...:)

РЕДАКТИРОВАТЬ : Что касается вопросов, являются ли геттеры / сеттеры модульного тестирования или нет, я решил сделать поэтому в основном по причинам, указанным на http://www.sundog.net/sunblog/posts/should-we-test-getters-and-setters/ .

6
задан Steven 21 July 2011 в 09:00
поделиться