Порядок выполнения функции в тестовом примере mxunit

Я использую MxUnit в качестве основы тестирования для моего проекта ColdFusion. Но я не уверен, в каком порядке выполняются функции в тестовом примере. Я вставил фиктивные записи в БД для моего тестирования, в beforeTests() и удалив эти записи в afterTests(), У меня есть следующие функции в моем тестовом примере

public void function Read() {
//Block of code
}
public void function Save() {
//Block of code
}
public void function Delete() {
//Block of code
}

Но сначала Delete() исполняется, поэтому read() возвращает "Запись не найдена"(сообщение об ошибке), поскольку запись удаляется в самой функции delete(). Поэтому я подумал, что он работает в алфавитном порядке, и поэтому я изменил имена функций соответственно (Read(),Save(),XDelete() - так как это в алфавитном порядке). Опять то же самое происходит.

Но работает нормально, когда я переименовал функции в A_Read(),B_save(),C_Delete(),

Поэтому кто-то объясняет, в каком порядке выполняются функции.

2 ответа

Решение

Вы не можете гарантировать, в каком порядке они будут работать, предполагая, что это случайно.

См. http://blog.adamcameron.me/2013/11/unit-testing-mxunit-and-test-scenario.html

Для данного тестового прогона нет гарантии, в каком порядке выполняются тесты, хотя в действительности все зависит от того, как ColdFusion представляет их в метаданных CFC, я думаю. Их порядок выполнения, конечно, не рандомизирован. Но не следует принимать какой-либо порядок выполнения теста. И действительно, каждый тест действительно должен быть полностью отдельным от других тестов в CFC

Вам действительно нужно переосмыслить то, как вы проводите свои тесты, чтобы они все были независимы друг от друга.

Однако, если вы действительно должны: http://blog.bittersweetryan.com/2012/01/using-new-orderedtestdecorator-in.html

Возможно, вам лучше использовать setUp и tearDown вместо beforeTests и afterTests. Таким образом, новые фиктивные записи будут вставлены в базу данных перед каждым тестом, и тесты не будут зависеть друг от друга.

Другие вопросы по тегам