Функции Chai (isAbove, isBelow, ecc) не работают

#node.js #typescript #mocha.js #chai

#node.js #машинопись #mocha.js #chai

Вопрос:

Я пытаюсь написать тестовый файл, используя Mocha и Chai, но, похоже, библиотеки Chai не хотят работать. Я, конечно, делаю что-то не так, но я не могу понять, где.

Это код

 function byte() {}

describe("byteToSignedShort()", function()
{
   context("in b argument with the first bit set to 1", function()
   {
       it("should return a negative number", function()
       {
           assert.isBelow(byte(), 0, "");
       })
   })
   context("in b argument with the first bit set to 0", function()
   {
       it("should return a positive number", function()
       {
           assert.isAtLeast(byte(), 0, "");
       })
   })
})
  

Я не знаю, может ли это быть полезно, но вот package.json

 {
  "name": "learing_typescript",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha -r ts-node/register test/**.ts --recursive --no-deprecation"
  },
  "author": "",
  "license": "UNLICENSED",
  "devDependencies": {
    "@types/expect": "^24.3.0",
    "@types/mocha": "^8.0.3",
    "chai": "^4.2.0",
    "mocha": "^8.1.3",
    "ts-mocha": "^7.0.0",
    "ts-node": "^9.0.0",
    "typescript": "^4.0.3"
  },
  "dependencies": {
    "@babel/cli": "^7.11.6",
    "@babel/core": "^7.11.6",
    "@babel/preset-env": "^7.11.5",
    "@babel/register": "^7.11.5"
  }
}

  

И когда я запускаю его с помощью «npm test», выдает мне эту ошибку

 byteToSignedShort()
    in b argument with the first bit set to 1
      1) should return a negative number
    in b argument with the first bit set to 0
      2) should return a positive number

  0 passing (16ms)
  2 failing

  1) byteToSignedShort()
       in b argument with the first bit set to 1


should return a negative number:
     TypeError: assert.isBelow is not a function
      at Context.<anonymous> (testbyteTestDC.ts:10:20)
      at processImmediate (internal/timers.js:456:21)

  2) byteToSignedShort()
       in b argument with the first bit set to 0
         should return a positive number:
     TypeError: assert.isAtLeast is not a function
      at Context.<anonymous> (testbyteTestDC.ts:17:20)
      at processImmediate (internal/timers.js:456:21)
  

Ответ №1:

Возможно, вам потребуется добавить assert оператор импорта из chai пакета

 import { assert } from 'chai'; // add import statement

function byte() {}

describe("byteToSignedShort()", function()
{
  ...
}