3
scala 사양 및 unitils-dbunit을 사용하려고합니다. 사양 단위 사용하기
클래스에서 확장 @RunWith (classOf [UnitilsJUnit4TestClassRunner]) 또는 로 테스트 클래스에 주석을 당신이 unitils를 사용하면 데이터 집합의이 @DataSet (배열 ("DataSet.xml")와로드를 설정할 수 있습니다). 이 모든 작업은 JUnit에서 가능합니다. 그래서 나는 @RunWith 주석이 무시됩니다 같아요- 내가 Gradle을하고 ScalaTestAntTask 내 사양 테스트를 실행하고 있습니다 : 사양을 사용하는 경우 는하지만이 문제를 얻었다.
나는 여기에 본 로 내 시험 방법에 @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))
}
}
}
- 기독교
이 시험 방법은 없기 때문에 데이터 집합 주석은"xxx" should
에 직접 적용 할 수 없습니다
답장을 보내 주셔서 감사합니다. (제 질문에 해결책을 첨부했습니다) – Christian