#node.js #mocha.js
#node.js #mocha.js
Вопрос:
Проблема в том, что mocha выводит неверные данные
вывод теста mocha / test
PS C:UsersrluthAPImaintest > mocha
kordata API
matching given hufflepuff and gryffindor
1) should be false
matching given gryffindor and gryffindor
2) should be true
values of grades
3) given A it should be 4
values of grades
4) given F it should be 0
0 passing (17ms)
4 failing
1) kordata API
matching given hufflepuff and gryffindor
should be false:
TypeError: scripts.matchingClass is not a function
at Object.matchShouldFail (srctestscripts.js:7:24)
at Context.it (testtest.js:7:42)
2) kordata API
matching given gryffindor and gryffindor
should be true:
TypeError: scripts.matchingClass is not a function
at Object.matchShouldPass (srctestscripts.js:11:24)
at Context.it (testtest.js:11:41)
3) kordata API
values of grades
given A it should be 4:
TypeError: test.AShouldBe4 is not a function
at Context.it (testtest.js:15:49)
4) kordata API
values of grades
given F it should be 0:
TypeError: test.FShouldBe0 is not a function
at Context.it (testtest.js:19:49)
Вот test/src/testscripts.js
'use strict';
const expect = require("chai").expect
var scripts = require("../../Resources/js/functions.js")
module.exports = {
matchShouldFail: function() {
expect(scripts.matchingClass("hufflepuff","gryffindor").to.equal(false))
},
matchShouldPass: function() {
expect(scripts.matchingClass("gryffindor","gryffindor").to.equal(true))
},
AshouldBe4: function() {
expect(scripts.calculateGradePoint("A").to.equal(4))
},
FshouldBe0: function() {
expect(scripts.calculateGradePoint("F").to.equal(0))
},
shouldBe3: function() {
expect(scripts.roundToHundreth(3,1,1).to,equal(3))
},
shouldBe2_25: function() {
expect(scripts.roundToHundreth(18,4,2).to.equal(2.25))
},
classShouldBe1: function() {
student = ["gym"]
expect(scripts.countClasses(student).to.equal(1))
},
classShouldBe3: function() {
student = ["gym", "english", "potions"]
expect(scripts.countClasses(student.to.equal(3)))
}
};
Как вы можете видеть, я получаю этот странный вывод, в котором половина моих переменных переименована в test.functionname, а другая половина остается прежней. Также я чувствую, что мой код для моих тестов в полном порядке
/main/ресурсы/js/функции/js
module.exports = {
CalculateGradePoint: function (letterGrade) {
if (letterGrade === "A")
return 4
if (letterGrade === "B")
return 3
if (letterGrade === "C")
return 2
if (letterGrade === "D")
return 1
if (letterGrade === "E")
return 0
},
//checks if two values are the same
matching: function (actual, expected) {
if (actual === expected)
return true
return false
},
//calculates a GPA value to the nearest hundreth depeding
//on amount of students and classes and each students grade from that class
roundToHundreth: function (GPA, students, totalClasses) {
return Math.round(100 * GPA / (students * totalClasses)) / 100
},
//counts the amount of classes a student is taking
countClasses: function (student) {
var count = 0,
loop = 0
len = student.courses.length
for (loop = 0; loop < len; loop )
count
}
};
и файл, который их вызывает
main/test/src/testscripts.js
'use strict';
const expect = require("chai").expect
var scripts = require("../../Resources/js/functions.js")
module.exports = {
matchShouldFail: function() {
expect(scripts.matchingClass("hufflepuff","gryffindor").to.equal(false))
},
matchShouldPass: function() {
expect(scripts.matchingClass("gryffindor","gryffindor").to.equal(true))
},
AshouldBe4: function() {
expect(scripts.calculateGradePoint("A").to.equal(4))
},
FshouldBe0: function() {
expect(scripts.calculateGradePoint("F").to.equal(0))
},
shouldBe3: function() {
expect(scripts.roundToHundreth(3,1,1).to,equal(3))
},
shouldBe2_25: function() {
expect(scripts.roundToHundreth(18,4,2).to.equal(2.25))
},
classShouldBe1: function() {
student = ["gym"]
expect(scripts.countClasses(student).to.equal(1))
},
classShouldBe3: function() {
student = ["gym", "english", "potions"]
expect(scripts.countClasses(student.to.equal(3)))
}
};
Я пытался поискать другие проблемы, но обычно они были вызваны тем, что функции вообще не импортировались или просто неправильно. И чего я действительно не понимаю, так это почему половина имен тестов имеют старое имя переменной, а остальные — новое. В основном, почему мой код не работает. Я чувствую, что все настроено правильно. У меня действительно были проблемы с поиском функций, но я выяснил, как с этим справиться. И теперь мне говорят, что эти функции не являются функцией. Я предполагаю, что это какая-то мелочь, поскольку я впервые использую этот материал самостоятельно. Любая помощь приветствуется.
Комментарии:
1. Ваша
functions.js
функция не экспортируетmatchingClass
, я думаю, проблема довольно ясна из сообщения об ошибке.2. Ххаха, мне нужна утка. Я, который устранил эту проблему и дал мне известную. Но, по крайней мере, я больше не застрял, спасибо