我希望能够将测试用例编写为 dojo/doh 中的类层次结构。
但是当测试被调用时,它们似乎是使用 hitch 调用的,因此会丢失继承的方法。
到目前为止,我只能编写独立函数的测试用例,但我想将一些常见的设置重构为一个单独的方法
可能有更好的方法,但我只是通过声明一个包含测试对象数组的 BaseTest 类来做到这一点。
例子:
baseFieldViewTests: [{
name: "Test input widget()",
runTest: function () {
var inputWidget = this.field.getInputWidget();
doh.assertTrue(inputWidget.get, "Input widget has no get method");
doh.assertTrue(inputWidget.set, "Input widget has no set method");
doh.assertTrue(inputWidget.placeAt, "Input widget has no placeAt method");
}
},
然后在子类测试中,我遍历基类测试并注册它们:
/**
* Register base field view tests
*/
baseFieldViewTests = new BaseFieldViewTest().baseFieldViewTests;
for (test in baseFieldViewTests) {
if (baseFieldViewTests[test]) {
doh.register("component/form/text/ReadOnlyTextViewTest",
{
name: baseFieldViewTests[test].name,
setUp: setUp,
runTest: baseFieldViewTests[test].runTest,
tearDown: tearDown
});
}
}
不太优雅,但它似乎工作。