【发布时间】:2018-08-28 02:40:11
【问题描述】:
我有一个简单的 FizzBuzz 功能,并且必须对其进行测试,花了一整天,无法弄清楚如何正确实现它。它会引发错误。
function* sequenceFizzBuzz(start, step) {
start = start || 0;
step = step || 1;
if ((start + step) % 3 === 0) {
if ((start + step) % 5 === 0) {
yield "FizzBuzz"
}
yield 'Buzz'
} else if ((start + step) % 5 === 0) {
yield 'Fizz'
} else {
yield start += step;
}
}
test('Should to get FizzBuzz or just Fizz or Buzz', () => {
expect(sequenceFizzBuzz(10, 5)).toBe("FizzBuzz")
});
收到此错误: 比较两种不同类型的值。预期的字符串,但收到的对象。
20 |
21 | test('Should to get FizzBuzz or just Fizz or Buzz', () => {
> 22 | expect(sequenceFizzBuzz(10, 5)).toBe("FizzBuzz")
| ^
23 | });
【问题讨论】:
-
欢迎来到stackoverflow,为了得到一个好的答案,你必须把你的错误信息和任何其他必要的细节放在这里,以便其他人可以帮助你。
-
由于函数
sequenceFizzBuzz(10, 5),您得到了一个空对象 ({})。您需要正确修复所述功能。 -
你有一个使用 ES6 生成器的工作解决方案,就像你试图做的那样,在这个 S.O.答案:stackoverflow.com/a/30195668/305953
标签: javascript testing jestjs