Изучая передовые практики модульного тестирования, которые помогут собрать рекомендации для моей организации, я столкнулся с вопросом о том, лучше или полезно разделять контрольные приборы (тестовые классы) или хранить все тесты для одного класса в одном файле.
Кстати, я имею в виду «модульные тесты» в чистом смысле, что они представляют собой тесты «белого ящика», нацеленные на один класс, одно утверждение на тест, все проверенные зависимости и т. Д.
Примером сценария является класс (назовите его 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)