首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mxunit测试用例中函数的执行顺序

mxunit测试用例中函数的执行顺序
EN

Stack Overflow用户
提问于 2014-07-10 15:25:24
回答 2查看 296关注 0票数 4

我正在使用MxUnit作为ColdFusion项目的测试框架。但我不确定测试用例中的函数是按照什么顺序执行的。我在DB中插入了虚拟记录,用于我的测试,在beforeTests()中,并在afterTests()中删除这些记录。我在我的测试箱中有以下功能

代码语言:javascript
复制
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()时,它工作得很好。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 4
EN

Stack Overflow用户

发布于 2014-07-10 16:30:45

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24680464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档