[英]How do I mock or fake behavior of a website to allow unit testing for certain JS functions
[英]How to create mock object for unit testing
如何編寫測試用例:我是初學者編寫測試用例,請幫助。
function 的 Angular class。
picklistScroll() {
const picklistWrapper = document.getElementsByClassName('picklist-values-wrapper')[0];
jQuery(picklistWrapper).animate({
scrollTop: picklistWrapper.scrollHeight
}, 'slow');
}
下面是 spec.ts 文件 -
describe('picklistScroll', () => {
it('makes expected calls', () => {
// scroll height problem coming
var dummyElement = document.createElement('div');
dummyElement.className = "picklist-values-wrapper";
dummyElement.style.height = '200px';
dummyElement.style.overflowY = 'auto';
document.getElementsByClassName = jasmine.createSpy('picklist-values-wrapper').and.returnValue(dummyElement);
});
});
失敗並顯示以下消息:
TypeError:無法讀取未定義的屬性(讀取'scrollHeight')
看起來我需要為 innerHTML 創建模擬 object 。 我怎么能做到這一點?
describe('picklistScroll', () => {
it('makes expected calls', () => {
// scroll height problem coming
var dummyElement = document.createElement('div');
dummyElement.className = "picklist-values-wrapper";
dummyElement.style.height = '200px';
dummyElement.style.overflowY = 'auto';
document.getElementsByClassName=jasmine.createSpy('dummyElement.scrollHeight')
document.getElementsByClassName = jasmine.createSpy('picklist-values-wrapper').and.returnValue(dummyElement);
});
})
您需要像這樣為此創建一個間諜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.