2011-10-23 90 views
1

在我的應用程序內我使用了一個jQuery插件FullCalendar - 它是一個看起來像Google日曆的jQuery日曆。功能測試,jQuery和assert_select_jquery

我想寫測試日曆正在顯示(CalendarController#索引)的功能測試(CalendarControllerTest < ActionController :: TestCase)。

這將是容易,如果日曆是普通的HTML,而是用JavaScript編寫所以在我的HTML頁面我有:

<script src="fullcalendar.js" type="text/javascript"></script> 
<script src="calendar.js" type="text/javascript"></script> 
[...] 
<div id="calendar"></div> 

內calendar.js(腳手架從Rails的3.1 - CalendarController + calendar.js + calendar.css + CalendarControllerTest)我加載FullCalendar:

$('#calendar').fullCalendar(); 

因此我的功能測試內側(CalendarControllerTest)此將不起作用:

# Checks <div class="fc-content"> is present i.e the calendar is being displayed 
assert_select '.fc-content', count: 1 

我試圖用assert_select_jquery沒有成功:

assert_select_jquery :html, '#calendar' do 
    assert_select '.fc-content', count: 1 
end 

我知道Webrat /水豚但是從我看到它是用於集成測試不起作用試驗。

你會怎麼做?

回答

0

回答自己... 我使用默認的Rails測試框架來測試模型和控制器(目錄測試/單元和測試/函數)。 assert_select_jquery與函數測試(控制器)一起使用,當您擁有像create.js.erb或destroy.js.erb這樣的非侵入式JavaScript時。 我不完全測試功能測試中的JavaScript,因爲我在目錄測試/集成中使用Capybara。