2014-11-14 4 views
0

Я тестирую модуль jquery plugin с использованием qunit и sinonjs. Он отлично работает в браузере, все тесты проходят, но когда я запускаю в командной строке с помощью Grunt, я получаю сообщение об ошибке «PhantomJS», возможно из-за отсутствия запуска QUnit ». Проблема вызвана созданием sinonjs, созданным для window.alert. Может ли кто-нибудь объяснить, что не так с моей заглушкой? Я предполагаю, что phantomjs ждет ответа. Я попробовал QUnit.start(), а также попытался вернуть true/false/undefined из моего синусового заглушки.sinon stub time out phantomjs

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

Если я правильно помню, вы должны return true; (или ложь) от вашего шлейфа ... Я думаю. По крайней мере, так я всегда это видел, и как это было у various других SO answers. Поэтому попробуйте следующее:

+0

Благодарим Вас за отзыв. К сожалению, не ответ :-(Все еще получил ту же проблему, но я внес поправки в код выше, чтобы отразить мои последние попытки. –

+0

Dang ... как насчет того, чтобы пытаться издеваться над методом 'assert', чтобы убедиться, что это Sinon, что это проблема? Вы можете просто сделать: 'window.alert = function() {return true;};' ПРИМЕЧАНИЕ: если вы попробуете это, ваше утверждение не будет работать, но это скажет вам, если Phantom выйдет из строя или нет , – jakerella