【问题标题】:Test with Jest (JavaScript)用 Jest 进行测试 (JavaScript)
【发布时间】:2019-04-30 23:29:24
【问题描述】:

我无法执行以下测试,这是什么问题?

test('3 - shorthand syntax', function () {
    const name = 'Myamoto';
    const age = 32;
    const samurai = { name, age };
    expect(samurai).toEqual(age: 32, name: "Myamoto");
  });

【问题讨论】:

  • .toEqual(age: 32, name: "Myamoto"); 语法无效...参数列表不是对象...
  • 我能做到:expect(samurai).toEqual(samurai);但我猜这不是传递对象的方式?
  • 在深入 Jest 之前,您可能会考虑弄清楚基本的 JS 语法规则,可能会更容易一些

标签: javascript jestjs


【解决方案1】:

问题是您应该传递并反对toEqual() 方法,以与您创建的Object 进行比较。

expect(samurai).toEqual({age: 32, name: "Myamoto"});

【讨论】:

  • 谢谢,请问这实际上是怎么做的,我有点困惑... expect(samurai).toEqual(Object); ??
  • 没有。 toEqual() 方法比较传递给expect() 的数据,看看它们是否相等。在这种情况下,两者都应该是 Object 类型,因为第一个是对象。
  • 这意味着......期望(武士).toEqual(武士); (?) 感谢您的帮助。
  • @Alejandro,这不是开玩笑的正确方式。您应该将samurai 传递给函数,并将函数调用传递给expect(),例如expect(myFunc(samurai)).toEqual({age: 32, name: "Myamoto"});。然后,jest 将比较您的函数的结果是否与应有的结果相同。
  • 我现在明白了!我看不到 {} 问题...感谢 Matheus!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2018-11-09
  • 2018-04-06
相关资源
最近更新 更多