【问题标题】:Testing calling the right function dependent on the condition - sinon/mocha - javascript根据条件测试调用正确的函数 - sinon/mocha - javascript
【发布时间】:2017-08-09 16:17:25
【问题描述】:

我想问是否可以根据条件用 sinon 或 mocha 测试调用正确的函数。例如,我有 class Knight,我想知道当参数“data”为真时是否调用了 函数 (knightRun)

export class Knight {

        createKnight(data,reducer) {
            if (data) {
              this.knightRun(reducer);
            } else if (!data) {
                this.knightFight(reducer);
            }
        }

        private knightFight(reducer) {
            // do something
        }

        private knightRun(reducer) {
            // do something
        }

    }

【问题讨论】:

    标签: javascript function testing mocha.js sinon


    【解决方案1】:

    您可以使用间谍来检查是否调用了特定函数。 Sinon.js 是一个库,它提供了一种在为 JavaScript 编写单元测试时监视函数的方法。

    例如

    describe('Knight class', () => {
      it('should call knightRun when data is false', () => {
        const knight = new Knight().createKnight(false, null)
        sinon.spy(knight, "knightRun")
        assert(knight.knightRun.calledOnce)
      })
    
      it('should call knightFight when data is true', () => {
        const knight = new Knight().createKnight(true, null)
        sinon.spy(knight, "knightFight")
        assert(knight.knightFight.calledOnce)
      })
    })
    

    顺便说一句,private 关键字不是有效的 JavaScript。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      相关资源
      最近更新 更多