我開始爲我現有的jQuery插件編寫Qunit測試。我已經完成了六次配置風格測試,以確保一切正常。現在我開始測試功能。我的插件是textarea字段的倒計時插件。下面是實際工作的版本:Qunit測試與實際的jQuery插件執行不匹配
http://andymatthews.net/code/textCounter/
我正在寫一個測試,檢查該字段下顯示的計數是正確的值。例如,如果一個字段允許100個字符,20個字符都在外地頁面加載時,場下的標籤應改爲80
這裏的什麼在qunit夾具:
<div id="qunit-fixture">
<textarea id="myTextarea">Existing content</textarea>
<span id="theCounter"></span>
</div>
這裏的相關的失敗測試
test('setup', function(){
console.log($('#theCounter'));
equal($('#theCounter').text(), 124, 'count correctly initialized');
});
這裏是插件的現有內容。還有更多,但我只是增加更多的代碼,因爲現有的測試通過召集。
(function($) {
$.fn.textCounter = function(o){
o = $.extend({}, $.fn.textCounter.defaults, o);
return this.each(function(i, el){
var $e = $(el),
$target = $(o.target);
// predefined count minus existing content
$e.html(o.count - $target.text().length);
console.log($e.html());
});
}
$.fn.textCounter.defaults = {
count: 140,
alertAt: 20,
warnAt: 0,
target: '#myTextarea',
stopAtLimit: false
}
}(jQuery));
我假設,因爲我沒有明確地配置插件使用默認的測試工具頁上的插件。如果是這種情況,那麼計數器應該開始最多140個字符減去已經在現場的16個字符,並應該顯示124.
這是問題......當一個示例HTML頁面運行時,它正確顯示124。測試運行時,它將以空字符串的形式返回$('#theCounter').text()
。在運行示例頁面和測試之後查看控制檯,上面的日誌語句顯示了124.但是單元測試顯示了一個空字符串。
這不是什麼祕密,所以我可以提供所有的文件,如果它有幫助。我相信這可能是某種範圍的問題,但是我沒有足夠的經驗知道QUnit有什麼問題。
DAAAAAAAAAAMN!這就是以利亞。我想我假設(錯誤地)QUnit自動運行插件,但這顯然不是真的。謝謝你的幫助。 – commadelimited