我使用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()
时,它工作正常。
所以有人解释函数执行的顺序。
答案 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。这样,在运行每个测试之前,新的虚拟记录将被插入到数据库中,并且测试将不会相互依赖。