我正在爲我的異步操作編寫測試,以處理簡單的代碼。這裏是我的動作功能:模擬在另一個函數中使用的函數
export function updateUserAuthenticationStatus(){
return function(dispatch){
return axios.get(getLoginStatusUrl())
.then(response => {
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
const store = mockStore();
return store.dispatch(updateUserAuthenticationStatus()).then(()=>{
//expect(store.getActions()[0]).to.eql(expectedActions);
});
});
}).catch(function(response){
});
}
}
所以問題是功能getLoginStatusUrl(),它確實對夫婦檢查的cookie,並返回基於某些條件下,適當的URL。所以,我要的是嘲笑這個函數返回例如test.com然後我可以測試我的行動如下:
it("",() => {
**here I want to mock getLoginStatusUrl() to return test.com**
nock("test.com")
.get("/")
.reply(200,"test detail");
})
我怎麼能嘲笑getLoginStatusUrl()在這種情況下返回test.com?
非常感謝您的回答,我會開始研究它並讓您知道結果。只是一個問題:我有一個getLoginStatusUrl函數來獲取url,我們根本不知道路徑,但是在這裏我們有onGet('/ loginStatus')模擬函數,我們定義路徑'/ loginStatus'它如何解決這個問題? –
@HamedMinaee看到編輯。 –
非常感謝我正在處理它,並讓你知道結果 –