簡體   English   中英

如何為單元測試創建模擬 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM