测试新手,我该如何用Mocha, Chai, Enzyme和Sinon测试这种方法呢?

New to testing, how would I test this method with Mocha, Chai, Enzyme, and Sinon?

本文关键字:测试 Sinon 方法 Chai 新手 Mocha 何用 Enzyme      更新时间:2023-09-26

这是我的方法

  handleKeyEvent(event) {
    const code = event.keyCode;
    if (UsedKeys.includes(code)) {
      event.preventDefault();
      if (code === KeyCodes.DOWN) {
        this.modifyIndexBy(1);
      } else if (code === KeyCodes.UP) {
        this.modifyIndexBy(-1);
      }
    }
  }

我对测试还是很陌生的,我不知道我该如何去测试这个部分。该方法接受一个事件,所以我必须合成一个事件对象并将其传入吗?

之后,我是否只需测试this.modifyIndexBy()是否被调用?

这个方法不返回任何东西。我是否修改我的代码以使其更易于测试?

有几种方法可以做到这一点。

  • 您可以创建对象,然后监视modifyRowIndexBy以检查当handleKeyDown被给定参数调用时它是否被调用。
  • 你可以把你的键处理从你的"索引修改"中分离出来,这样他们就可以独立测试(监视你正在测试的同一个对象是不好的做法)
  • modifyIndexBy实际上做什么?您可以测试结果是否相同(因此它实际上并没有测试modifyIndexBy是否被调用,而是测试modifyIndexBy应该做的事情是否已经完成)。这是一个更BDD的方法。