Как я могу написать контрольные примеры как классы в 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
            });
    }
}

Не слишком элегантно, но, похоже, работает.

Другие вопросы по тегам