我使用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;
答案 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;