1
DOMに特定の要素が存在することを必要とするjavascript関数をテストしようとしています。以下は、私がテストしようとしている機能である:私はテストを実行し、デバッガに任意の型$('#all-items').length
を取得するとjqueryセレクタを擬似してhtml要素を返す
auction.save_scroll_state = function() {
var user_agent = $window.navigator.userAgent.toLowerCase();
var is_android = user_agent.indexOf("android") > -1;
if (is_android) {
var restore_pos = null;
debugger
if ($location.search().section == "items") {
restore_pos = $('#all-items').scrollTop();
$('#all-items').one('scroll', function(){$('#all-items').scrollTo(restore_pos)});
}
else if ($location.search().section == "user_items"){
restore_pos = $('#your-items').scrollTop();
$('#your-items').one('scroll', function(){$('#your-items').scrollTo(restore_pos)});
}
}
};
その要素が見つからないことを示す0
を返します。 私はjqueryセレクターをモックするJasimeスパイのようなものを形成しようとしています。私のテストは以下の通りです:
it ('save_scroll_state android user_agent all-items', inject(function($bwAppState, $location, $window) {
$window.navigator = {userAgent: "Mozilla/5.0 (Linux; Android 7.0; SM-G950F Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36"};
var items_div = $("<div id='all-items'></div>");
var jq_div_spy = spyOn($.fn, 'html').and.returnValue(items_div);
var items_div_spy = spyOn(items_div, 'scrollTop');
spyOn($location, "search").and.returnValue({section: 'items'});
$bwAppState.auction.save_scroll_state();
expect(items_div_spy).toHaveBeenCalled();
delete $window.nagivator;
}));
主な目的はscrollTop()
はいくつか持っているHTML要素とid="all-items"
のIDタグに呼び出されることを確認することです。
すべてのヘルプは非常に理想的