2013-11-25 4 views
0

Я использую fullcalendar в приложении Rails и хочу протестировать страницы, которые я использую, используя Konacha.Как проверить, что fullCalendar был инициализирован с помощью Konacha

В файле с именем fullcal_init, я следующий (рабочий) Код

jQuery(document).ready(function($) { 

    $('#calendar').fullCalendar({ 

     //do stuff with fullCalendar 

    }); 

}); 

, который генерирует <div id="calendar" class="fc fc-ltr" ... ></div>

Я пытаюсь проверить это с помощью следующего кода:

#test_helper 

//= require jquery 
//= require chai-jquery 
//= require "application" 

... 

#my_tests.js 

//= require "test_helper" 

var $ = jQuery 

"use strict"; 

describe('fullcalendar_init', function() { 

    it('renders the fullCalendar event stream', function() { 
     ('#konacha').fullCalendar; 
     assert.ok($('#konacha').should.have.class('fc')); 
    }); 

}); 

это, однако, не работает - тестовое тело Konacha не имеет каких-либо классов, приложенных к нему. Существует много документации об использовании Konacha (особенно вне контекста backbone.js). Может ли кто-нибудь указать мне в правильном направлении, как проверить, что инициализируется fullcalendar?

ответ

0

Я получил эту работу, используя обратный вызов done, который поставляется с mocha. Проблема заключалась в том, что fullcalendar занимает некоторое время для рендеринга, но мой тест сразу же срабатывал, поэтому не было времени для добавления класса fc. Иными словами, мой код асинхронный, а мой тест не был. Работает следующий код:

it('renders fullCalendar plugin', function(done) { 
    $('#konacha').fullCalendar(); 
    done(); 
    $('.fc').should.exist; 
}); 
Смежные вопросы