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