首页 > 解决方案 > 在我的第一次摩卡测试中,一直在“无法读取属性‘应该’未定义”

问题描述

describe('Maestro', function () {
    var numArray = ['5018', '5020', '5038', '6304'];
    var should = chai.should;
    var string = '012344555389638968953769839'
    var l = 12;
    // Write full test coverage for the Maestro card
    for (var i = 0; i < numArray.length; i++) {
        var currentPrefix = numArray[i];
        for (var length = l; length <= 19; length++) {

            it(`has a prefix of ${numArray[i]} and a length of ${length}`, function () {
                detectNetwork(numArray[i] + string.substring(0, length - 4)).should.equal('Maestro')

            });
        }
    }
})

Hack Reactors 的 TA 下班后才帮我一把,我已经为此奋斗了大约 6 个小时。

我已经多次重写了这个测试。我已经硬编码,我已经单独编写了每个测试(我确实通过了,但我知道下一个问题需要大约 800 个前缀和不同的长度,所以硬编码不是一个选项)。这是我第一次被介绍进行Mocha测试,chai但其他信用卡也使用此逻辑通过。

任何帮助,将不胜感激。

标签: javascriptmocha.jschai

解决方案


看来您没有chai正确导入包。

错误说无法读取should未定义。也就是说,程序变得chai未定义。

为避免此问题,请确保您已chai像这样导入变量:

var chai = require("chai");

而且你已经做到了npm install chai


推荐阅读