久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

茉莉花中的位置重新加載

Location reload in Jasmine(茉莉花中的位置重新加載)
本文介紹了茉莉花中的位置重新加載的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

限時送ChatGPT賬號..

我真的不確定如何進行測試?(間諜?)

I'm really not sure how to approach testing this? (spyOn?)

function reloadPage() {
  $('#logo').click(function() {
    location.reload();
  })
}

任何建議都會很棒!

推薦答案

你可能不確定如何測試這段代碼的原因是因為它在做兩件不同的事情,你應該把它分成更小的塊.

The reason you may be unsure about how to test this piece of code is because it's doing 2 different things and you should break it up into smaller chunks.

我在這里看到兩個不同的功能:

I see two distinct functions here:

  • 點擊事件處理
  • 重新加載頁面

那么為什么不這樣分解邏輯呢?

So why not break up the logic like so?

function reloadPage() {
    location.reload();
}

function bindEvents() {
    $('#logo').click(reloadPage);
}

現在您可以使用 Spies 單獨測試它們:

Now you can test them separately using Spies:

describe('when the logo is clicked', function() {
   var logo;
   var handlers;
   beforeEach(function() {
       handlers = {
           locationReload: location.reload, // handle for location.reload()
           reloadPage: reloadPage      // handle for your reloadPage()
       };

       logo = $('#logo').click(reloadPage);

       // attach Spy on reloadPage() and let the function call through
       spyOn(handlers, 'reloadPage').and.callThrough();

       // attach Spy on location.reload() 
       spyOn(handlers, 'locationReload');

   });

   it('will execute reloadPage function', function() {
        logo.trigger('click');
        expect(handlers.reloadPage).toHaveBeenCalled();
   });

   it('will reload the page', function() {
        logo.trigger('click');
        expect(handlers.locationReload).toHaveBeenCalled();
   });

   afterEach(function() {
       // clean up event bindings after each test
       logo.off('click');
   });

});

沒有太多需要測試 reloadPage 處理程序是否正確添加到 #logo 的點擊事件,因為測試是模擬 .click() 并檢查 reloadPage 是否被調用.

There's not much need to test that the reloadPage handler was correctly added to the #logo's click event because the test is simulating a .click() and checking if reloadPage gets called or not.

所以很可能你只需要 it('will reload the page') 規范,而不是兩者.

So most likely you'd only need to have the it('will reload the page') spec, not both.

這篇關于茉莉花中的位置重新加載的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I get my jasmine tests fixtures to load before the javascript considers the document to be quot;readyquot;?(在 javascript 認為文檔“準備好之前,如何讓我的 jasmine 測試裝置加載?) - IT屋-程序員軟件開發技術
What do jasmine runs and waitsFor actually do?(jasmine 運行和等待實際上是做什么的?)
How to provide mock files to change event of lt;input type=#39;file#39;gt; for unit testing(如何提供模擬文件來更改 lt;input type=filegt; 的事件用于單元測試)
How to unit test a chained method using Jasmine(如何使用 Jasmine 對鏈式方法進行單元測試)
How do I inject $rootScope into an AngularJS unit test?(如何將 $rootScope 注入 AngularJS 單元測試?)
Jasmine - How to spy on a function call within a function?(Jasmine - 如何監視函數中的函數調用?)
主站蜘蛛池模板: 国产精品污www在线观看 | 国产在线观看一区二区 | 国产偷录视频叫床高潮对白 | 精品粉嫩超白一线天av | 在线a视频网站 | 国产成人99av超碰超爽 | 337p日本欧洲亚洲大胆鲁鲁 | 国产高清免费视频 | 日韩精品一区二区三区中文字幕 | 伊人网在线综合 | 亚洲欧美视频一区二区 | 爱综合| 国产精品久久久久久久久久久免费看 | 精品免费 | 国产剧情一区 | 亚洲国产福利视频 | 欧美一区二区三区电影 | 日日操夜夜摸 | 国产欧美精品区一区二区三区 | av乱码 | 久久9热| 午夜视频在线播放 | 国产精品乱码一区二区三区 | 国产丝袜一区二区三区免费视频 | 99日韩| 国产精品久久影院 | 亚洲久视频 | 国产精品视频久久久 | 日韩高清在线观看 | 久久久久久久一区 | 成年免费在线观看 | 国产精品午夜电影 | 亚洲网站观看 | 欧美一级精品片在线看 | 97久久久久久 | 99视频免费看 | 伊人二区 | 91在线观看| 国产精品一区二区不卡 | 国产99久久精品一区二区永久免费 | av在线免费观看网站 |