开玩笑:测试生成器函数会产生另一个生成器函数

幽默

我有一个看起来像这样的功能

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语句。任何帮助将非常感激。

这也是我第一次在这里发帖,如果我没有正确遵守规则,请原谅我。

法尔扎德YZ

您可以使用以下两种方法之一使用Jest测试生成器功能:

方法1:

直接测试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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从另一个函数返回生成器

Python,迭代文件或另一个行生成器的函数

使用另一个生成器的生成器理解

如何从一个从另一个生成器中获取每个项目的生成器中产生?

一次产生一个结果的生成器函数

创建一个生成器,该生成器从任意数量的内部生成器中产生值

如何在另一个生成器函数中访问koa上下文?

enumerate()是否产生一个生成器对象?

使用另一个python生成器对生成的数字进行排序

使生成器递归函数

蓝鸟错误:生成器函数必须是一个函数

通过界面生成器选择另一个故事板

如何一次从Python的生成器函数中获取一个值?

python生成器函数不产生输出

生成器函数无法产生适当的值

产生生成器和聚合结果的Python函数

如何从嵌套生成器函数产生结果?

如何从嵌套生成器函数产生结果?

始终处理但不总是产生的生成器函数

如何编写一个好的生成器链接函数

只有一个值时,函数生成器不起作用?

在Idris中,如何编写一个带参数索引功能的“ vect生成器”函数

打字稿编译器给出了一个包含生成器函数的代码

构造函数上的 lombok 生成器应该只有一个吗?

从普通函数创建生成器函数

从正常函数调用生成器函数

Python:为什么一个生成器内部比其他生成器快?

将多个无限生成器对象组合到一个生成器中

为什么生成器列表只返回最后一个生成器的元素?