Під час дослідження кращих практик тестування підрозділів, які допомагають скласти рекомендації для моєї організації, я зіткнувся з питанням, чи краще або корисно відокремити тестові прилади (тестові класи) або зберегти всі тести для одного класу в одному файлі.
Fwiw, я маю на увазі "одиничні тести" в чистому сенсі, що вони є тестами білого поля, орієнтованими на один клас, одне твердження за тест, усі знущання знущаються тощо.
Приклад сценарію - клас (називайте його Document), який має два методи: CheckIn і CheckOut. Кожен метод реалізує різні правила тощо, які контролюють їх поведінку. Дотримуючись правила «одне твердження за тест», у мене буде кілька тестів для кожного методу. Я можу розмістити всі тести в одному DocumentTests
класі з іменами типу " CheckInShouldThrowExceptionWhenUserIsUnauthorized
і" CheckOutShouldThrowExceptionWhenUserIsUnauthorized
.
Або я міг би мати два окремі тестові класи: CheckInShould
і CheckOutShould
. У цьому випадку мої тестові імена будуть скорочені, але вони будуть організовані, щоб усі тести на конкретну поведінку (метод) були разом.
Я впевнений, що існують спеціалісти і проти, або підходити, і мені цікаво, чи хтось пройшов маршрут з кількома файлами, і якщо так, то чому? Або, якщо ви вибрали єдиний файловий підхід, чому ви вважаєте, що це краще?
testResponseContainsSuccessTrue()
, testResponseContainsMyData()
і testResponseStatusCodeIsOk()
. Ви б їх в один , testResponse()
який три стверджує: assertEquals(200, response.status)
, assertEquals({"data": "mydata"}, response.data)
іassertEquals(true, response.success)