免责声明:我完全陌生的HAXE,但我有许多其他语言的经验。可选的消息参数添加到的assertEquals
我有类似的测试如下:
function doTest(type:SomethingMagic, tests:Array<Array<Int>>) {
for (t in tests) {
var res = DoSomeMagicalWork(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7]);
assertEquals(type, res.type);
}
}
这样做的问题是,单元测试框架,在许多不同的阵列上运行,不给我正确的路线为其测试失败。换句话说,如果我遇到这种方法与一群阵列,如:
doTest(SOME_MAGIC_TYPE,
[[0, 0, 0, 1625, 0, 35, 0, 0, 0, 0, 0],
...
]);
和这些线路出现故障,它并没有告诉我这线失败。现在,我知道我无论如何都可以重构这些测试,使其更直观一点,但这是由其他人编写的,而且我目前无法改变这些测试。
我希望做的是以下几点:
function doTest(type:SomethingMagic, tests:Array<Array<Int>>) {
var number = 0;
for (t in tests) {
var res = DoSomeMagicalWork(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7]);
assertEquals(type, res.type, "Test #" + number + " for type " + type);
number++;
}
}
所以,基本上,我希望能够在一些额外的通讯信息传递到assertEquals
功能,类似于一个能在其他单元测试框架中做。然后,在失败时,它将输出标准断言消息,可能附加了作为参数发送给该函数的附加消息。最初,我认为它就像分类haxe.TestCase
一样简单,但由于Haxe解释类型(显然),这看起来不像我想的那么简单。
有没有人有类似这样的,可以给我如何完成它推荐什么成功?