小编Gab*_*uez的帖子

在Jest中测试递归调用

我目前正在测试使用memoization + recursion的Fibonacci算法.

function memoization(num, hash = {'0': 0, '1':1}) {
  if (!hash.hasOwnProperty(num)) {
    hash[num] = memoization(num-1,hash) + memoization(num-2,hash);
  }
  return hash[num];
}
Run Code Online (Sandbox Code Playgroud)

我想在Jest中测试函数的memoization方面,以确保函数正确使用哈希并且不执行冗余工作:

test('is never run on the same input twice', ()=>{
    fib.memoization = jest.fn(fib.memoization);
    fib.memoization(30);
    expect(allUniqueValues(fib.memoization.mock.calls)).toBeTruthy();
  });
Run Code Online (Sandbox Code Playgroud)

但是,mock.calls仅报告使用初始参数值调用此函数一次,并且不跟踪其他递归调用.有任何想法吗?

recursion unit-testing jestjs

8
推荐指数
1
解决办法
2260
查看次数

标签 统计

jestjs ×1

recursion ×1

unit-testing ×1