Nycistanbul.js涵盖发电机Redux传奇

问题描述

注意:我知道this的帖子,但这是关于另一个测试框架的信息。)

我正在使用RITEway测试我的Redux sagas,它在引擎盖下使用了Tape。我使用NYC生成测试覆盖率报告。所有的Sagas都有100%的测试覆盖率,但NYC无法识别。

例如,我有一个简单的传奇:

import { getToken } from 'features/user-authentication/user-authentication-reducer';
import { call,select } from 'redux-saga/effects';
 
import { request } from './fp';
 
function* authenticatedRequest(requestArgs) {
  const token = yield select(getToken);
  return yield call(request,{ ...requestArgs,token });
}
 
export { authenticatedRequest };

这是针对它的测试:

import { getToken } from 'features/user-authentication/user-authentication-reducer.js';
import { call,select } from 'redux-saga/effects';
import { describe } from 'riteway';

import { authenticatedRequest } from './authenticated-request.js';
import { request } from './fp.js';

describe('authenticated request saga',async assert => {
  const route = 'https://some-site.com/api/lel';
  const method = 'POST';
  const body = { team: 'my-team' };

  const gen = authenticatedRequest({ route,method,body });

  assert({
    given: 'saga started',should: 'fetch the token from store',actual: gen.next().value,expected: select(getToken),});

  const token = 'token-abc-123';

  assert({
    given: 'a token',should: 'make an authenticated request',actual: gen.next(token).value,expected: call(request,{ route,body,token }),});

  assert({
    given: 'nothing',should: 'be done',actual: gen.next().done,expected: true,});
});

如您所见,我们已经完全完成了所有生成器的案例,但是NYC出于某种原因没有做到这一点。

NYC report

它声称只覆盖了60%的代码。如何通过点击扫描生成器/传奇测试来获得NYC?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)