mxunit testcase中的函数执行顺序

时间:2014-07-10 15:25:24

标签: coldfusion 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 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

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