3
我正在試圖獲得scala規格和unitils-dbunit的工作。使用規格與單位
使用已unitils來註釋 測試類@RunWith(classOf [UnitilsJUnit4TestClassRunner])或 從類擴展,你可以設定數據集與 @DataSet(陣列(「DataSet.xml」)來加載)。所有這些都適用於JUnit。
- 我正在我的規格與gradle產出和ScalaTestAntTask測試,所以 我猜@RunWith註釋將被忽略:
但使用的規格時,我得到了2個問題。
我不能@DataSet註釋設置爲我的測試方法 在這裏看到:
[...] @RunWith(classOf[UnitilsJUnit4TestClassRunner]) class DaoTest extends Specification with ScalaTest { @TestDataSource var dataSource: DataSource = null @DataSet(Array("DataSet.xml")) "querying the database" should { "return the right data" in { [assertSomething] } } }
這給了我以下編譯器錯誤:
錯誤:定義
的預期開始「查詢數據庫」應爲{
^
有人知道我怎麼可以一起使用規格和單位?
UPDATE:這是我想出瞭解決方案:
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))
}
}
}
- 基督教
感謝您的回答,它的工作(我將解決方案附加到我的問題) – Christian 2011-03-21 15:45:32