我正在使用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()返回“没有找到记录”(失败消息),因为记录会在delete()本身中被删除。因此,我认为它是按字母顺序运行的,因此我相应地更改了函数名(Read(),Save(),XDelete()--因为它是按字母顺序排列的)。同样的事情也在发生。
但是,当我将函数重命名为A_Read(),B_save(),C_Delete()时,它工作得很好。
有人解释了函数的执行顺序。
发布于 2014-07-10 15:44:24
你不能保证他们会按什么顺序运行,假设它是随机的。
请参阅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-10 16:30:45
您最好使用setUp和tearDown,而不是beforeTests和afterTests。这样,在运行每个测试之前,将将新的虚拟记录插入到数据库中,并且测试将不相互依赖。
https://stackoverflow.com/questions/24680464
复制相似问题