QUnitテストでは、オートコンプリートメソッド(jQuery UI)をモックアウトしたいのですが、テストを実行するたびに次のようになります。
test("Create_PassedContainer_RunsAutocompleteOnMatchingElement",function(){
var $matchingInput = $('<input data-autocomplete-url="some"/>');
var $dom = $('<div><input/></div>');
$dom.append($matchingInput);
var autocompleteWasCalled = false;
$matchingInput.autocomplete = function(){ autocompleteWasCalled = true; };
new Autocomplete($dom);
ok(autocompleteWasCalled,"Should call autocomplete.");
});
結果が出ています:
TypeError: Object [object Object] has no method 'autocomplete'.
テスト中のコード:
function Autocomplete($container) {
var $self = this;
this.Initialize = function($container) {
$self.$container = $container;
$self.$text = $('*[data-autocomplete-url]', $container);
$self.$value = $('input[type="hidden"]', $container);
$self.$text.autocomplete();
};
$self.Initialize($container);
};
何でも役に立ちます。