В общем, к чему вы должны стремиться при тестировании, это то, что при выполнении тестируемой системы (SUT) это происходит в четко определенном контексте. Во время выполнения теста вы хотите, чтобы все аспекты, которые могли повлиять на выполнение вашей SUT, находились под контролем. Поэтому повторное использование объектов между тестами (обычно) не рекомендуется, поскольку предыдущий тест мог внести изменения в объекты. Что может затем повлиять на результаты последующих испытаний. Рекомендация против совместного использования объектов между тестами верна, даже если вы знаете точный порядок, в котором будут выполняться тесты (тесты должны быть независимыми - много информации об этом в Интернете, например, Почему в модульном тестировании тесты не должны зависеть от порядок исполнения? ).
Поэтому, за исключением исключительных обстоятельств, предпочитайте, чтобы у вас был свежий объект для каждого теста. Вы можете создать его в _before
, но может быть даже лучше (для удобства чтения) создать его непосредственно в каждом тестовом примере, который в этом нуждается.