当前位置: 首页 > 知识库问答 >
问题:

函数工作,但在Jest测试中失败

翁宜年
2023-03-14

我对Jest是新手,目前只是在玩一些现有功能的测试。我有一个函数,它获取一个数据数组(来自JSON文件),并将其映射到特定的位置,绘制点。

这是功能点:

function plotPoints(data) {
  console.log(data.subset[0]);
  const sub0 = data.subset[0];
...

plotPoint将JSON数据作为参数。该函数之所以有效,是因为它在控制台中正确记录数据,而其他功能按预期工作。

但测试总是失败:

绘图点。测验js

import plotPoints from '../functions/plotPoints';
const dataSrc = require('../../public/data/jsonfile.json');

test('it finds the plot data', () => {
  expect(plotPoints(dataSrc)).toBeDefined();
});

返回此错误:

it finds the plot data

TypeError: Cannot read property '0' of undefined

  3 | // takes raw JSON data and builds a big object with matching joint pairs
  4 | function plotPounts(data) {
> 5 |   const sub0 = data.subset[0];
    |                ^
  6 |


  at plotPoints (src/functions/plotPoints.js:5:16)
  at Object.<anonymous>.test (src/tests/plotPoints.test.js:5:10)

我认为可能函数是在jsonfile之前的测试中运行的。json已加载,因此我尝试基于Jest文档编写异步测试:

test('it finds the correct joints', done => {
  function callback(input) {
    expect(input).toBeDefined();

    done();
  }
  mapJoints(callback(dataSrc));
});

但这没什么区别。是否有任何原因说明函数在数据中找不到问题。子集[0]数组,但不在测试中?

共有1个答案

丰俊艾
2023-03-14

你检查了dataSrc是否被定义了吗?

尝试将require替换为:

import dataSrc from '../../public/data/jsonfile.json'
 类似资料:
  • 问题内容: 我对Jest和测试来说相对较新。我有一个带有输入元素的组件: 我想要一个测试来检查输入元素的功能是否以输入元素的属性作为参数。这是我到目前为止所走的距离: 我从这里的第一个解决方案开始模拟Jest And中的按钮单击:https : //facebook.github.io/jest/docs/en/mock- functions.html 编辑:运行以上会引发以下错误: 问题答案:

  • 我有一个异步函数,我想同时测试成功和失败。函数成功时返回一个字符串,失败时抛出。我在测试失败上失败得很惨。下面是我的代码: 我通过注释失败的代码并在注释中添加结果来禁用 正如你所看到的,什么都不起作用。我相信我的测试几乎是第一个失败测试的Promises示例和最后一个失败测试的Async/Await示例的完全副本,但是没有一个可以工作。 我相信与Jest文档中的示例的不同之处在于,它们展示了如何测

  • 问题内容: 首先,我遵循Flux架构。 我有一个显示秒数的指示器,例如:30秒。每显示一秒,它就会少显示一秒钟,因此29、28、27直到0。当到达0时,我清除间隔,使其不再重复。而且,我触发一个动作。派遣此操作后,我的商店会通知我。因此,发生这种情况时,我将间隔重置为30秒,依此类推。组件看起来像: 组件工作正常。现在,我想用Jest测试它。我知道我可以使用renderIntoDocument,然

  • 在工作中,我们为其中一个应用程序提供了一个自动化套件,该套件将在每次提交到master/deploy到prod时运行,很长一段时间以来,我们一直在努力使其足够可靠。 测试在Jenkins中运行,使用Selenium webDriverChromexvfb作为显示服务器。我们知道测试是有效的,因为如果我们在笔记本电脑上本地运行它们(我和两个朋友尝试过),它们每次都运行完美,但在詹金斯几乎每次都失败。

  • 问题内容: 我在JBoss eap 6.1服务器上运行Arquillian测试(由jenkins作业启动)时遇到问题。在JBoss 7.1.1服务器上运行测试没问题,但是当我切换到eap 6.1时,所有测试都收到以下异常: 如果我在本地计算机上的EAP 6.1服务器上运行测试,则一切工作正常(配置相同,因此不会出现问题)。 有谁知道可能是什么问题? Arquillian依赖项: managed 问