在我的应用程序中,我使用的是jQuery插件,FullCalendar - 它是一个看起来像Google Calendar的jQuery日历。
我想编写一个功能测试(CalendarControllerTest< ActionController :: TestCase)来测试正在显示的日历(CalendarController #index)。
如果日历是常规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 / Capybara,但从我看到它用于集成测试而不是功能测试。
你会怎么做?
答案 0 :(得分:0)
回答自己...... 我使用默认的Rails测试框架来测试模型和控制器(目录test / unit和test / functionnal)。 当你有像create.js.erb或destroy.js.erb这样不引人注意的JavaScript时,assert_select_jquery用于功能测试(控制器)。 我没有在functionnal测试中完全测试JavaScript,因为我在目录测试/集成中使用了Capybara。