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

笑话:错误:您的测试套件必须至少包含一个测试

翟俊茂
2023-03-14

我正在实现开玩笑来测试我的React应用程序,并在我的实用程序函数上设置了一个简单的测试,但我得到了错误:

错误:您的测试套件必须至少包含一个测试。

我已经检查了我的实现,我认为一切都是正确的-有人能看一下我吗?

测试和函数的文件结构如下

- __tests__
  -- sumObjectValues-test.js
- utils
  -- sumObjectValues.js

sumObjectValues.js如下所示:

const sumObjectValues = (obj, identifier) => {
    return obj
        .map((el) => { return el[identifier]; })
        .reduce((prev, next) => { return prev += next; }, 0);
}

export default sumObjectValues;

SumObjectValues-test.js

   const obj = [
    {
        "id": 0,
        "item": "Tesla Model S",
        "amount": 85000
    },
    {
        "id": 1,
        "item": "iPhone 6S",
        "amount": 600
    },
    {
        "id": 2,
        "item": "MacBook Pro",
        "amount": 1700
    }
];

const identifier = "amount";


jest.unmock('../client/utils/sumObjectValues'); // unmock to use the actual implementation of `sumObjectValues`

describe('sumObjectValues', () => {
    if('takes an array of objects, each with amount values, & sums the values', () => {
        const sumObjectValues = require('../client/utils/sumObjectValues');
        expect(sumObjectValues(obj, identifier)).toBe(87300);
    });
});

然后在我的package.json脚本中有“test”:“jest”,但出现以下错误:

FAIL  __tests__/sumObjectValues-test.js (0s) ● Runtime Error
  - Error: Your test suite must contain at least one test.
       at onTestResult (node_modules/jest-cli/build/TestRunner.js:143:18) 1 test suite
failed, 0 tests passed (0 total in 1 test suite, run time 13.17s) npm
ERR! Test failed.  See above for more details.

谢谢大家:)

注意:是it中的一个输入错误,但在修复后,我收到一个新错误:

FAIL __tests__/sumObjectValues-test.js (321.763s) ● sumObjectValues ›
it takes an array of objects, each with amount values, & sums the
values - TypeError: sumObjectValues is not a function at
Object. (__tests__/sumObjectValues-test.js:27:10) 1 test
failed, 0 tests passed (1 total in 1 test suite, run time 344.008s)
npm ERR! Test failed. See above for more details.

共有2个答案

白侯林
2023-03-14

如果您想稍后编写测试,您可以使用此选项忽略它们

test.skip('skip', () => {});
钦德佑
2023-03-14
if('takes an array of objects, each with amount values, & sums the values', () => {

应该是

it('takes an array of objects, each with amount values, & sums the values', () => {
 类似资料:
  • 我试图在JUnit 5中开发一个参数化测试,如下例所示。 尝试运行测试导致异常: 您必须为此@ParameterizedTest提供至少一个参数 这个信息让我觉得,我做错了什么,不是吗? p、 我有一个假设,只有原语类型的参数可用。

  • 我怎样才能使jest测试在任何抛出的错误上失败? 我试了一下,但还没有弄清楚语法。 我收到错误消息 getArcId getArcId=&>;错误 expect(received).rejects.ToThrow() 接收的函数未引发 但是下面的测试通过了,所以我要测试的函数确实抛出了(至少在我对抛出含义的最好理解下是这样的):

  • 我正在使用Python和Flask对密码进行表单验证。密码需要包含至少一个大写字母和至少一个数字。 我目前失败的尝试...

  • 我正在试图理解JUnit 5,并借助一个带有JUnit 5的FizzBuzz应用程序。下面是一个测试用例 通过引发以下异常,此测试用例无法执行 根本原因可能是什么?

  • 在测试我的Controller类时,我遇到了这个异常 我的控制器测试类如下所示 我的引导类 我的依赖项如下所示 IllegalArgumentException:必须至少存在一个JPA元模型没有解决我的问题

  • 我有使用vue cli 3的vue应用程序。在安装过程中,我选择了jest作为测试框架。要运行我的单元测试,我在package.json中有一个脚本: 要运行这个我写在vs代码终端: 这将运行所有符合package.json文件jest配置部分中设置的规范的测试。 我的问题是如何只运行一个测试。我需要运行特定的命令吗?或者是否有一个vscode扩展将与此设置一起工作。