Попытка проверить объект JavaScriptКак проверить свойство объекта Javascript, когда функция с мокко, Chai
Game.js
var GameManager= {
gameType: 'room',
roomDimension: [10,10],
playerDirection: ["W"]
possibleDirections: ["N","E","S","W"],
init: function(){
if(this.gameType == 'room'){
regexpNumber = /^-?[0-9]$|-?([1][0-9])$/;
}
return true;
},
turnRight : function(){
var movePosition = this.possibleDirections.indexOf(this.playerDirection);
if(movePosition == this.possibleDirections.length -1){
return this.possibleDirections[0];
}
return this.possibleDirections[movePosition + 1];
},
commandString: function(string){
var command = /^[PQR]*$/;
if(command.test(string){
return true;
}
this.errorMessageNumber = 0;
return false;
}
}
Вот мой тестовый скрипт test.js
var expect = require("chai").expect;
var GameManager = require("../GameManager.js");
describe("Test game type", function() {
beforeEach(function() {
GameManager.gameType = 'room';
GameManager.roomDimension= [10, 10];
GameManager.possibleDirections: ["N","E","S","W"];
});
it('should commandString be as parameters', function() {
expect(GameManager.commandString("AABB")).to.not.be.false;
});
it('should init toBeTruthy', function() {
expect(GameManager.init()).ok;
});
});
Ошибка: В обоих случаях ошибка теста с ошибкой TypeError
показана ниже для одного из t он тест:
1) Test game type should init toBeTruthy:
TypeError: GameManager.init is not a function at Context.<anonymous>
Поскольку init
не рассматривается как функция здесь, как это может быть проверена?
Ожидание в тесте выглядит нормально, может быть 'Const ожидать = требуется («chai»). ожидать, что вы импортируете chai. – Hosar
Также как вы экспортировали GameManager? – Hosar
@Hosar Изменен код на 'var expect = require (" chai "). Ожидать;' И я не экспортирую GameManager, так как это простой объект Javascript. Не используется в качестве класса экспорта '' Typcript''. – shaz