我有一个看起来像这样的功能
export function* login(user, page) {
yield checkIp();
return yield loginAuth(user, page);
}
我正在尝试从单元测试中测试登录生成器,如下所示
it('login test', () => {
const user = { email:"[email protected]", password:"1234" }
const generator = login (user, {});
generator.next();
expect(generator.return().done).toEqual(true); });
这是正确的方法吗?同样在本文中,我无法涵盖登录生成器功能的return语句。任何帮助将非常感激。
这也是我第一次在这里发帖,如果我没有正确遵守规则,请原谅我。
您可以使用以下两种方法之一使用Jest测试生成器功能:
直接测试generator的下一个值:
describe('generator test', () => {
it('should call generator function', function() {
const user = { email:"[email protected]", password:"1234" };
const generator = login(user, {});
expect(generator.next().value).toBe(SOME_VALUE_HERE));
});
});
您可以使用co
将生成器包装在Jest支持的Prom中的包。
import co from 'co';
describe('generator test', () => {
it('should call generator function', co.wrap(function *() {
const user = { email:"[email protected]", password:"1234" };
const generator = login(user, {});
expect(generator).toBe(SOME_VALUE_HERE));
}));
});
有关其他变通方法以及在Jest中跟踪功能的详细讨论,请访问Jest中的Generator支持。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句