在Jasmine上閱讀的材料中,他們只測試.js
文件。但如果測試是在網頁上,說什麼,用代碼:如何爲具有HTML和JavaScript或jQuery的網頁編寫Jasmine測試?
try.html:
<input id="the-input"></input>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$("#the-input").focus(function() {
$(this).css("background", "#ff9");
});
$("#the-input").blur(function() {
$(this).css("background", "#cff");
});
</script>
這只是說,如果用戶點擊(或選項卡)輸入框中,使箱子的背景變成黃色,並在聚焦時將其變爲淺藍色。在這種情況下,我們如何測試.html文件中的上述行爲? (這個html文件應該放在哪裏 - 可以是Jasmine lib文件和SpecRunner.html之外的任何地方,以及SpecRunner.html如何包含它以某種方式測試頁面?
jsfiddle位於:http://jsfiddle.net/MspUF/
更新:這是很好的HTML內容和JavaScript代碼中分離出來,不過,什麼是爲了能夠測試它的具體
你的意思是,如果我的HTML文件很複雜,比如一個有200或500行,那麼我必須嘲笑他們,而不是使用HTML文件原樣? (以及如何「模擬它」?)我需要測試的是,當用戶點擊它時,背景確實會發生變化 –
在這種情況下,單獨使用Jasmine可能不適合您,請檢查PhantomJS或Selenium, PhantomJS與Jasmine一起工作,它模擬一個網頁瀏覽器並讓你測試你的代碼,聽起來就像你所需要的。 –
PhantomJS將全部基於終端?在工作中,我的同事實際上已經設置好了,所以如果有20個HTML文件全部使用各種'.js'文件,那麼所有20個HTML文件都可以在Chrome或Safari內部進行測試......並且所有20 HTML文件實際上顯示爲1個單獨頁面,看起來就像'SpecRunner.html'。我不能問他是如何做到幾天後 –