4

我正在使用 MxUnit 作为我的 ColdFusion 项目的测试框架。但我不确定,测试用例中的函数是以什么顺序执行的。我已在 DB 中插入虚拟记录以进行测试,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()返回“No record Found”(失败消息),因为记录在 delete() 本身中被删除。所以我认为它是按字母顺序运行的,所以我相应地更改了函数名称(Read(),Save(),XDelete()- 因为它是按字母顺序排列的)。同样的事情再次发生。

但是当我将函数重命名为A_Read(),B_save(),C_Delete().

所以有人解释了函数的执行顺序。

4

2 回答 2

4

你不能保证它们会按照什么顺序运行,假设它是随机的。

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

于 2014-07-10T15:44:24.463 回答
4

您最好使用 setUp 和 tearDown 而不是 beforeTests 和 afterTests。这样,新的虚拟记录将在每个测试运行之前插入到数据库中,并且测试不会相互依赖。

于 2014-07-10T16:30:45.727 回答