不管我怎么寫,都會出現異步問題。
test.js:
const auth = require('./methods/auth.js');
describe('test', () => {
test('test', async () => {
expect.assertions(1);
const data = await auth.signin();
回傳 expect(data.success).toBeTruthy()。
});
auth.js:
module.exports = {
async signin(data) {
try {
const res = await axios.post('/signin', data);
回傳res.data。
} catch (error) {
回傳error.response。
}
},
}
每一個執行結果都是不同的。
uj5u.com熱心網友回復:
你可以按以下方式測驗Promises:
test('test awaiting it to resolve', () => {
// 不要等待。注意回傳;測驗回呼不需要是異步的。
// 我在我的測驗中所做的,因為它更容易閱讀,而且意圖很明確
return expect(auth.signin()).resolveves.toEqual({success: true})。
});
test('test the promises way', () => {
//不比上面的好;傳統的方式;注意'回傳'。
return auth.signin().then(data => { expect(data.success).toBeTruthy() });
});
來自jest的詳細說明: https://jestjs.io/docs/asynchronous#promises
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318656.html
標籤:
