Как я могу написать контрольные примеры как классы в Dojo
Я хочу иметь возможность писать тестовые сценарии как иерархии классов в dojo/doh.
Но когда тесты вызываются, кажется, что они вызываются с помощью заминки, следовательно, теряются унаследованные методы.
До сих пор мне удавалось писать только тестовые случаи, которые являются независимыми функциями, но я бы хотел перенести некоторые общие установки в отдельный метод.
1 ответ
Возможно, есть и лучший способ, но я просто сделал это, объявив класс 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
});
}
}
Не слишком элегантно, но, похоже, работает.