Blanket.js没有使用QUnit显示正确的语句覆盖率

时间:2015-01-08 17:41:01

标签: javascript jquery unit-testing qunit blanket.js

我正在尝试Blanket.js和QUnit,并为填充表单并提交它的特定函数编写了一些测试。这是我测试的功能:

myObj.populateAndSubmitForm = function (data) {
    var $authToken = $('#AuthToken');
    var $userId = $('#userId');
    var $appState = $('#appState');
    var $form = $('#post');

    $authToken.val(data.payload.authToken);
    $userId.val(data.payload.userId);
    $appState.val(data.payload.appState);
    $form.attr('action', data.payload.url);
    $form.submit();
}

在我的qunit测试中:

QUnit.test('populateAndSubmitForm', function (assert) {
    var data = {
        payload: {
            authToken: 'awef2314',
            userId: '1234',
            appState: 'neutral',
            url: 'tests.html'
        }
    };

    $('#qunit-fixture').html(html);
    var $authToken = $('#AuthToken');
    var $userId = $('#userId');
    var $appState = $('#appState');
    var $form = $('#post');

    // Prevent the form from actually submitting
    $form.submit(function (e) {
        e.preventDefault();
    });

    // Populate the form now
    myObj.populateAndSubmitForm(data);

    assert.equal($authToken.val(), 'awef2314', 'AuthToken OK');
    assert.equal($userId.val(), '1234', 'userId OK');
    assert.equal($appState.val(), 'neutral', 'appState OK');
    assert.equal($form.attr('action'), 'tests.html', 'action url OK');
});

我的测试运行并且传递正常,但是blanket.js报告myObj.populateAndSubmitForm没有被覆盖(在浏览器中以红色突出显示)。

我的猜测是因为我正在测试副作用' DOM中的函数,而不是return语句。尽管如此,能够证明这个功能已经被覆盖会很好。想法?

0 个答案:

没有答案