Jest - TypeError:无法读取属性' fn'未定义的

时间:2018-01-08 20:30:49

标签: javascript testing enzyme jest

无处不在,我在运行某些Jest测试时遇到了问题:

Summary of all failing tests
 FAIL  server/controllers/voice/settings/__tests__/voice.settings.controller.test.js
  ● Test suite failed to run

    TypeError: Cannot read property 'fn' of undefined

      at Runtime._createJestObjectFor (node_modules/jest-runner/node_modules/jest-runtime/build/index.js:734:35)
      at handle (node_modules/worker-farm/lib/child/index.js:44:8)
      at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:51:3)
      at emitTwo (events.js:126:13)
      at process.emit (events.js:214:7)

我看到有人在这里有同样的问题(https://github.com/facebook/jest/issues/5058),但我不确定它是否得到解决。我尝试删除node_modules并重新安装,但没有修复它。想知道其他人之前是否有同样的错误以及如何解决?

2 个答案:

答案 0 :(得分:1)

我在我的反应应用程序中遇到了同样的问题。所以我将我的 jest setup.js 文件添加到

        public async Task<FileStreamResult> GetCalendar()
        {
            var response = await m_HttpClient.GetAsync(address + "/Download/iCal/");
            List<MediaTypeFormatter> formatters = new List<MediaTypeFormatter>();
            formatters.Add(new TextMediaTypeFormatter());

            return await response.Content.ReadAsAsync<FileStreamResult>(formatters);
        }

    public class TextMediaTypeFormatter : MediaTypeFormatter
    {
        public TextMediaTypeFormatter()
        {
            SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/calendar"));
        }

        public override bool CanReadType(Type type)
        {
            return type == typeof(string);
        }

        public override bool CanWriteType(Type type)
        {
            return false;
        }
    }

在那之后测试工作正常

答案 1 :(得分:0)

因此我在使用节点v8.9.3时出现了这个错误。在降级回v6.11.1之后,这个问题就消失了。