Сброс KnockoutJS ViewModel в тестах QUnit - PullRequest
4 голосов
/ 10 ноября 2011

Я только начинаю с Knockout JS и с QUnit для выполнения юнит-тестов моей модели вида нокаута.Проблема, с которой я сталкиваюсь, заключается в том, что если у меня есть несколько тестов в файле javascript qunit test, и я ссылаюсь на файл javascript, который включает в себя мое определение модели представления ... любые изменения, которые я делаю в модели представления в одном тестетакже присутствуют, когда я запускаю следующий тест в тестовом модуле.Я привык иметь среду NUnit, где мое состояние автоматически очищается между тестами.

Есть ли метод, шаблон или пример, на который кто-то может указать, который показывает лучший способ определить модель представления, и иметьон сбрасывает свое состояние для начала каждого модульного теста?

1 Ответ

2 голосов
/ 10 ноября 2011

Используете ли вы второй параметр (жизненный цикл) module?Если нет, то вы должны иметь возможность создавать свою модель представления на этом уровне, что-то вроде:

module("foo", {
    setup: function() {
        this.model = instantiateModel();
    },
    tearDown: function() {
        // execute reset here
    });

test("bar", function() {
    ok(this.model.hasSomething() !== null, "msg");
});

Насколько я помню, чтение QUnit выполняется в той же области, что и setup и tearDownпоэтому любые члены, определенные в setup, будут доступны в любых последующих тестах.

...