簡體   English   中英

使用Sinon.JS測試功能鏈

[英]Testing function chains using Sinon.JS

如何使用Sinon.JS測試類似以下的函數?

export function getToken(done) {
  const kc = Keycloak(config)
  kc.init({ onLoad: 'login-required' })
    .success(authenticated => {
      authenticated ? done(null, kc.token) : done(new Error('Some error!'), null)
    })
    .error(() => {
      done(new Error('Some error'), null)
    })
}

我嘗試做類似以下的事情,但無濟於事:

it('should return access_token', () => {
    const mockKeycloak = sinon.stub(Keycloak, 'init').returns({
      success: () => (true)
    })
    getToken(function () {})
    expect(mockKeycloak.callCount).to.equal(1)
  })

基本上,來自keycloak-js的Keycloak是IIFE,但是即使嘗試在窗口引用上存根Keycloak對象,我也無法使其正常工作。

對於登陸這里的人,這就是我所做的:

由於Keycloak是IIFE,因此一旦執行此操作,它將覆蓋存根對象

const kc = Keycloak(config)

因此,我只是從源中導出了該對象kc ,並在其上添加了init方法,它工作得很好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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