我想知道如何用笑话来测试返回承诺以解决另一种方法的方法。
例如:-
getUser() {
const getListFromDatabase= this.getListFromDatabase.bind(this);
const getListFromUser= this.getListFromUser.bind(this);
return new Promise((resolve) => {
const myList = Cookies.get('myList');
if (myList) {
resolve(myList);
} else if (CONFIGURATION.ENABLED) {
resolve(getListFromDatabase());
} else {
resolve(getListFromUser());
}
});
},
getListFromDatabase
和getListFromUser
是我主要对象中的其他方法。
getUser()
是我的主要对象中的一种方法。
所以现在我想开个玩笑的单元测试,以测试如果找到了cookie,我们解析了一个数组(myList),如果启用了全局配置变量,则解析了getListFromDatabase()
,否则{{1 }}。
我返回解决的新承诺这一事实使我对走哪条路感到困惑,与getListFromUser()
或expect().resolves
答案 0 :(得分:0)
您可以使用flush-promises来解决承诺,那么您无需等待承诺。
示例:
test('flushPromises', async () => {
let a;
let b;
Promise.resolve().then(() => {
a = 1;
}).then(() => {
b = 2;
})
await flushPromises();
expect(a).toBe(1);
expect(b).toBe(2);
});