【问题标题】:How do I use jest to make sure I am only using two arguments?我如何使用 jest 来确保我只使用两个参数?
【发布时间】:2021-04-22 15:23:24
【问题描述】:

我正在挑战自己,为 freeCodeCamp 中的问题创建自己的测试。目前停留在“使用 JavaScript 从另一个数字中减去一个数字”的第二个要求上。以下是要求。

var difference = 45 - 0;

//The variable difference should be equal to 12.
   
 //You should only subtract one number from 45.

我如何编写自己的测试来确保只使用两个参数?

(freeCodeCamp问题可以在这里找到:https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/subtract-one-number-from-another-with-javascript

【问题讨论】:

  • 解析 JS 并查看 AST 以检查表达式。
  • 编写单元测试是一件很难的事情,因为当 Jest 参与其中时,您只有值,没有计算。您可以按照上面的建议解析实际的代码文本,或者提取一个只需要一个参数从 45 中减去的函数。

标签: javascript unit-testing testing jestjs


【解决方案1】:

如果您将其作为应用程序的一部分进行测试,则不一定要测试表达式本身,而是测试包含该表达式的某个函数。要以可测试的方式组织该代码示例,您可以编写如下函数:

function getDifference(numberToSubtract) {
  const difference = 45 - numberToSubtract;
  
  return difference;
}

然后您可以使用 Jest 断言返回值为 12,并且您只使用了这样的单个参数:

expect(getDifference(33)).toBe(12);

【讨论】:

  • 这并不能测试只有一个值被减去,只是 getDifference 有效(我想你理解;我只是彻底:) OP 是 明确的 试图在 freecodecamp 上复制测试,它(以某种方式)解析表达式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2019-03-21
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
相关资源
最近更新 更多