0
這聽起來很愚蠢,但我無法在StackOverflow或Google上找到答案。我需要做一些非常簡單和容易的事情 - 傳遞給我的TestNG測試一個Dataprovider,它包含每個集合中的兩個數字,但是我沒有設法成功。這裏是我的代碼:如何用scala中的數字創建TestNG DataProvider?
@DataProvider(name = "numbersRandomRange")
def numbersRandomRange() = {
Array(Array(100, 150),
Array(100.10, 200.01),
Array(100.10f, 250.10f)
)
}
我的測試是這樣的: `
@Test(dataProvider = "numbersRandomRange")
def testNumbersRandomRange(min: Any, max: Any) {
def calculate(minValue: Any, maxValue: Any): Any = (minValue, maxValue) match {
case (min: Int, max: Int) => alpha.number(min, max)
case (min: Double, max: Double) => alpha.double(min, max)
case (min: Float, max: Float) => alpha.float(min, max)
}
val actualNumber = calculate(min, max)
logger.info("Checking custom number with type function. Should return with specific type and below specified value : ")
expectResult(actualNumber.getClass)(min.getClass)
assert(util.less(actualNumber, max))
assert(util.less(min, actualNumber))
}
`
當我嘗試運行它,我得到下一個錯誤信息:
數據提供公共java.lang.Object []必須返回Object [] []或Iterator [],而不是class [Ljava.lang.Object;
是的,的確,你是對的)我是新的,應該有一個簡單的解決方案:) :)非常感謝 – 2014-09-30 05:41:45
我能夠成功地運行測試,但Intelij IDEA抱怨輸入一點點,這就是使得它很開心,我不得不將''Array [Array [Any]]'的返回類型改爲':Array [Array [_>:Int with double with float <:AnyVal]]' – 2014-09-30 07:58:41
@AndrewZakordonetes Intellij會抱怨有時非常好,scalaz源代碼就是一個很好的例子。 – Noah 2014-09-30 13:02:13