sinon stub超时phantomjs

时间:2014-11-14 15:22:35

标签: javascript gruntjs qunit sinon

我使用qunit和sinonjs对jquery插件进行单元测试。它在浏览器中工作正常,所有测试都通过,但是当我使用Grunt在命令行上运行时,我得到错误" PhantomJS超时,可能是由于缺少QUnit启动"。问题是由我为window.alert创建的sinonjs存根引起的。任何人都可以解释我的sinon存根有什么问题吗?我猜猜phantomjs正在等待回应。我试过QUnit.start()并尝试从我的sinon stub中返回true / false / undefined。

QUnit.test('test options exist and default values', function( assert ) {

    // Stub the winow alert method using sinon.
    var alertStub = sinon.stub(window, "alert", function(msg) { return true; } );
    $('#target').formdialog();

    // Assert a dialog window opened, caused by the lack of parameters passed
    sinon.assert.called(window.alert);

    // Grab the jQuery plugin data assigned to the DOM element.
    var options = $('#target').data('gten-formdialog').options;

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,你需要从你的存根中return true;(或错误)......我想。至少,这是我一直以来的看法,以及various其他SO answers如何拥有它。所以试试这个:

QUnit.test('test options exist and default values', function( assert ) {

// Stub the winow alert method using sinon.
var alert = sinon.stub(window, "alert", function(msg) { return true; } );
$('#target').formdialog();

// Assert a dialog window opened, caused by the lack of parameters passed
sinon.assert.called(window.alert);

// Grab the jQuery plugin data assigned to the DOM element.
var options = $('#target').data('gten-formdialog').options;