Мне пришлось начать писать некоторые модульные тесты, используя QualityTools.UnitTestFramework, для слоя веб-сервиса, который мы разработали, когда мой подход с самого начала казался неверным.
Похоже, что модульные тесты должны выполняться в любом порядке и не полагаться на другие тесты.
Моя первоначальная мысль состояла в том, чтобы иметь нечто похожее на следующие тесты (упрощенный образец), которые выполнялись бы как упорядоченный тест в том же порядке.
AddObject1SuccessTest
AddObject2WithSameUniqueCodeTest
(полагается, что первый тест сначала создал object1, а затем ожидает сбой)
AddObject2SuccessTest
UpdateObject2WithSameUniqueCodeTest
(полагается на первый тест, создавший object1, и на третий тест, создавший object2, а затем ожидает сбой)
UpdateObject2SuccessTest
GetObjectListTest
DeleteObjectsTest
(с использованием добавленных идентификаторов)
Однако между тестами нет состояния и нет очевидного способа передачи, скажем, добавленных идентификаторов в deletetest, например.
Итак, верно ли то, что правильный подход для модульного тестирования сложных взаимодействий является сценарием?
Например
AddObjectSuccessTest
(который создает объект, проверяет данные и затем удаляет их)
AddObjectWithSameUniqueCodeTest
(который создает объект 1, затем пытается создать объект 2 с ошибкой, а затем удаляет объект 1)
UpdateObjectWithSameUniqueCodeTest
(который создает объект 1, затем создает объект 2 и затем пытается обновить объект 2, чтобы тот же уникальный код, что и у объекта 1, с ошибкой, а затем удаляет объект 1 и объект 2)
Я ошибаюсь?
Спасибо