首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有unitils的规范

使用带有unitils的规范
EN

Stack Overflow用户
提问于 2011-03-18 12:33:23
回答 1查看 767关注 0票数 3

我正试图让scala规范和unitils-dbunit发挥作用。

要使用unitils,必须用@RunWith(classOfUnitilsJUnit4TestClassRunner)注释测试类,或者从类中扩展,并且可以将DataSet的加载设置为使用@DataSet(“DataSet.xml”)。所有这些都适用于JUnit。

但是我在使用规范时遇到了两个问题:

  • 我正在用gradle和ScalaTestAntTask运行我的规范测试,所以我想@RunWith注释将被忽略。
  • 我无法将@DataSet注释设置为我的测试方法,如下所示: . @RunWith(classOfUnitilsJUnit4TestClassRunner)类DaoTest扩展了ScalaTest { @TestDataSource : DataSource = null @DataSet(Array("DataSet.xml"))“查询数据库”应该{“返回正确的数据”中{ assertSomething }}的说明

这给出了以下编译器错误:

错误:定义的预期开始

“查询数据库”应{

^

有人知道我怎么能把规格和单元组放在一起吗?

更新:--这是我想出的解决方案:

代码语言:javascript
复制
    import org.specs.runner.ScalaTest
    import org.specs.Specification
    import org.unitils.dbunit.DbUnitModule
    import java.io.File
    import java.util.Properties
    import org.unitils.core.ConfigurationLoader

    class DaoTest extends Specification with ScalaTest {

        "querying the database" should {

            doBefore {
                UnitilsDatabaseUtils.setup("DataSet.xml", "DataSet2.xml")
            }

            "return the right data" in {
                [test something]
            }
        }
    }

    object UnitilsDatabaseUtils {

        def setup(dataSetFileNames: String*) = {
            val configuration: Properties = new ConfigurationLoader().loadConfiguration
            val dbunitModule = new DbUnitModule
            dbunitModule.init(configuration)

            for (dataSetFileName <- dataSetFileNames) {
                val dataSetURL = getClass.getClassLoader.getResource(dataSetFileName)
                dbunitModule.insertDataSet(new File(dataSetURL.toURI))
            }
        }
    }

-基督教

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-20 23:39:43

DataSet注释不能直接应用于"xxx" should,因为这不是一个测试方法,只是一个常规的scala代码调用。

我不能给您一个完全有效的解决方案,但是您需要做的是挖掘unitils API并直接使用DataSetFactory加载数据。我认为您可以或多或少地重用找到这里的代码。

然后,如果需要在每个示例之前加载此数据集,只需使用doBefore调用即可。

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

https://stackoverflow.com/questions/5352026

复制
相关文章

相似问题

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