使用QUnit

时间:2019-02-04 14:18:09

标签: jquery unit-testing qunit chutzpah

我试图在Visual Studio中使用Chutzpah来了解QUnit的行为。以下JQuery插件应防止重复提交表单:

$.fn.preventDoubleSubmit = function () {
$(this).submit(function (e) {
    if (this.beenSubmitted) {
        return false;
    }
    else {
        this.beenSubmitted = true;
    }
});
return this;
};

它的用法如下:

<script>
$(function () {
    jQuery('#someForm).preventDoubleSubmit();
});
</script>

现在,我想使用QUnit对其进行测试,以便每次提交表单时都会增加一个计数器,因此我们可以测试是否提交了表单。像这样:

/// <reference path="../jquery-1.10.2.js" />
/// <reference path="extensions.js" />

(function ($) {

    var hasSubmitted = 0;
    this.$form.preventDoubleSubmit();

    this.$parent.on("submit", function () {
        hasSubmitted++;
    });

    this.$form.submit();
    equal(hasSubmitted, 1, 'It should have been submitted');

    this.$form.submit();
    equal(hasSubmitted, 1, 'It should not have been submitted');
});
})(jQuery);

但是,该表单似乎已提交了两次。但是,在QUnit之外,该代码似乎可以按预期工作(该表单仅提交一次)。

这是怎么回事,和/或在QUnit和Chutzpah中测试表单提交的正确方法是什么?谢谢!

p.s。,尝试使用Phantom和Chrome引擎,但结果相同。

0 个答案:

没有答案