2012-02-20 6 views
0

Я видел этот вопрос: Repeating code in JUnit tests ранее сегодня. Как вы пишете этот код при запуске? Вы видите, что существует метод addDrivingRecord(...). Этот метод не существует, когда вы впервые начинаете писать, поэтому выполняете ли вы этот тест, убедитесь, что он работает, а затем выполните метод setUp(), или вместо этого вы ждете, пока не написали метод addDrivingRecord(...), а затем реорганизовали его на @Before? При необходимости я объясню дальше.Использование метода @Before в JUnit

+0

Так что ваш вопрос «должен ли я использовать addDrivingRecord в методе испытаний/реализации addDrivingRecord/убедиться, что он работает/рефакторинг» или я должен сначала реорганизовать addDrivingRecord, а затем реализовать его? – helios

+0

Я не уверен, но если ваш вопрос о методологии, вы можете перенаправить его как tdd (или test-driven-development). – helios

+0

Если вы пишете новый тестовый класс, зачем писать что-нибудь, когда вы знаете, что собираетесь реорганизовать в любом случае? Я не уверен, правильно ли понимаю ваш вопрос, но нужно ли писать новый тест или рефакторинг старого, результаты теста должны быть одинаковыми. Так что сделайте все рефакторинг, затем тестирование. – steffinchen

ответ

4

Если я хорошо понял ваш спрашивать, если вам необходимо:

  1. использование addDrivingRecord в тестовом методе
  2. убедиться, что он идет зеленый (он работает)
  3. рефакторинг addDrivingRecord в @Before

или

  1. use addD rivingRecord в методе испытания
  2. рефакторинга addDrivingRecord в @Before
  3. убедиться, что он идет зеленый (работает)

Если это ваш вопрос, я должен идти на первый вариант: первый метод использования, а затем осуществить и идти зеленый, а затем реорганизовать ваш тест.

, потому что две причины:

  1. Вы должны проверить/реализовать одну вещь в то время, так что вы будете писать один метод испытания. Тогда вы сделаете его зеленым. Только тогда вы должны написать другой метод и понять, что код может быть реорганизован в @Before

  2. Хорошая практика - это методы тестирования записи, и только когда вы понимаете, что общие вещи перемещают их на @Before. Таким образом, вы не применяете интуитивные вещи при инициализации. Более того, если вы обнаружите, что другой тест нуждается в очень другом методе @Before, он, вероятно, принадлежит другому тестовому классу.