如何测试简单的布尔函数? [英] How to test simple boolean functions?

查看:30
本文介绍了如何测试简单的布尔函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在理解测试方面遇到了一些问题,因为我几乎从不觉得它是必要的.

Im having some issues to understand testing, since I almost never find it neccessary.

如果我有像

function isMovementOutOfBounds(newPosition) {
  if (newPosition[0] > input[0][0] || newPosition[0] < 0 || newPosition[1] > input[0][1] || newPosition[1] < 0) {
    return true;
  }
  return false;
}

function isMovementForbidden(forbiddenMovements, initialPosition, newPosition) {
  function isArrayInArray(arr, item) {
    const item_as_string = JSON.stringify(item);
    const contains = arr.some((ele) => JSON.stringify(ele) === item_as_string);
    return contains;
  }
  const newMovement = [initialPosition, newPosition];

  if (isArrayInArray(forbiddenMovements, newMovement)) {
    return true;
  }
  return false;
}

他们甚至应该接受测试吗?他们总是有回报,而且总是布尔值.所以我不明白是否真的有必要测试它.

Should they even be tested? They have always a return, and its always boolean. So I don't understand if its really necessary to test it.

也许我应该测试他们收到的输入类型?

Maybe I should test for the type of input they receive?

这一切对我来说似乎很愚蠢,我如何测试这些功能?知道我应该寻找什么吗?

It all seems dumb to me, how could I test those functions? Any idea of what should I look for?

推荐答案

至少

  • 测试可帮助您确保您的代码在不同情况下(各种输入,包括边缘情况)按预期运行
  • 测试可以帮助您保持特定模块与项目其他部分之间的接触点
  • 确保在您开发应用时,它仍能满足您的基本要求

只是为了给你一个线索,关于你可以执行哪种测试,请查看以下演示(显示你的代码目前无法运行):

Just to give you a clue, as to which kind of tests you may perform, check out the following demo (which shows that your code is not functional, as of now):

mocha.setup('bdd')

const { expect } = chai

function isMovementForbidden(forbiddenMovements, initialPosition, newPosition) {
  function isArrayInArray(arr, item) {
    const item_as_string = JSON.stringify(item);
    const contains = arr.some((ele) => JSON.stringify(ele) === item_as_string);
    return contains;
  }
  const newMovement = [initialPosition, newPosition];

  if (isArrayInArray(forbiddenMovements, newMovement)) {
    return true;
  }
  return false;
}

const testSuite = [
  {
    descr: 'Should work for basic coordinates',
    input: [[[0,0],[1,1]], [2,3], [1,1]],
    output: true
  },
  {
    descr: 'Should be able to handle empty array of forbidden movements',
    input: [[], [0,0], [1,1]],
    output: false
  },
  {
    descr: 'Should be able to allow staying at current point',
    input: [[1,1], [0,0], [0,0]],
    output: false
  }
]

describe('Basic test', ()=>{
  testSuite.forEach(({input, output, descr}) => 
    it(descr, ()=>{
        expect(isMovementForbidden(...input)).to.equal(output)
    }))
})

mocha.run()

<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/8.0.1/mocha.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/chai/4.2.0/chai.min.js"></script><div id="mocha"></div>

这篇关于如何测试简单的布尔函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆