일부 끝점을 정의하고 nodejs
. 에서 server.js
I 있습니다 :
var express = require('express');
var func1 = require('./func1.js');
var port = 8080;
var server = express();
server.configure(function(){
server.use(express.bodyParser());
});
server.post('/testend/', func1.testend);
그리고 func1.js
:
var testend = function(req, res) {
serialPort.write("1", function(err, results) {
serialPort.write("2" + "\n", function(err, results) {
});
});
});
exports.testend = testend;
이제이 test.js
끝점을 사용하려고합니다.
var should = require('should');
var assert = require('assert');
var request = require('supertest');
var http = require('http');
var app = require('./../server.js');
var port = 8080;
describe('Account', function() {
var url = "http://localhost:" + port.toString();
it('test starts', function(done) {
request(url).post('/testend/')
// end handles the response
.end(function(err, res) {
if (err) {
throw err;
}
res.body.error.should.type('string');
done();
});
});
});
하지만 실행할 node test.js
때이 오류가 발생합니다.
describe ( '계정', function () { ^ ReferenceError : 설명이 정의되지 않았습니다. 개체에서. (/test/test.js:9:1) Module._compile (module.js : 456 : 26) Object.Module._extensions..js (module.js : 474 : 10) Module.load (module.js : 356 : 32) Function.Module._load (module.js : 312 : 12) Function.Module.runMain (module.js : 497 : 10)에서 시작할 때 (node.js : 119 : 16) node.js : 906 : 3에서
문제를 어떻게 해결할 수 있습니까?
답변
를 통해 테스트한다고 가정하면 대신 명령을 mocha
사용하여 테스트를 실행해야 mocha
합니다.node
실행 파일 .
따라서 아직하지 않았다면 npm install mocha -g
. 그런 다음 mocha
프로젝트의 루트 디렉토리에서 실행 하십시오.
답변
vscode를 사용하는 경우 파일을 디버그하려는 경우
tdd
전에 사용 했는데ReferenceError: describe is not defined
하지만을 사용 bdd
하면 작동합니다!
그것을 해결하기 위해 반나절 낭비 ….
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"-u",
"bdd",// set to bdd, not tdd
"--timeout",
"999999",
"--colors",
"${workspaceFolder}/test/**/*.js"
],
"internalConsoleOptions": "openOnSessionStart"
},
답변
Mocha를 전역 적으로 설치하지 않고 node / npm으로 테스트를 실행하려면 다음을 수행하십시오.
• 프로젝트에 로컬로 Mocha를 설치합니다 (npm install mocha --save-dev
)
• 선택적으로 어설 션 라이브러리 (npm install chai --save-dev
)
• 에서 mocha 바이너리에 package.json
대한 섹션을 추가 scripts
하고 타겟팅합니다.
"scripts": {
"test": "node ./node_modules/mocha/bin/mocha"
}
• 사양 파일을 /test
루트 디렉토리에
• 사양 파일에서 어설 션 라이브러리를 가져옵니다.
var expect = require('chai').expect;
• mocha를 가져 오거나 , 실행 하거나, 전화 할 필요 가 없습니다.mocha.setup
mocha.run()
• 그런 다음 프로젝트 루트에서 스크립트를 실행합니다.
npm test
답변
다음과 같이 할 수도 있습니다.
var mocha = require('mocha')
var describe = mocha.describe
var it = mocha.it
var assert = require('chai').assert
describe('#indexOf()', function() {
it('should return -1 when not present', function() {
assert.equal([1,2,3].indexOf(4), -1)
})
})
답변
영업 이익에서 실행에 대해 질문 node
하지에서 mocha
. 이것은 매우 일반적인 사용 사례입니다. 프로그래밍 방식으로 Mocha 사용을
이것이 주입 된 설명이며 내 테스트에 적용됩니다.
mocha.ui('bdd').run(function (failures) {
process.on('exit', function () {
process.exit(failures);
});
});
나는 tdd
문서 에서처럼 시도했지만 작동하지 않았지만 bdd는 작동했습니다.
답변
“–ui tdd”를 사용할 때이 오류가 발생합니다. 이것을 제거하거나 “–ui bdd”수정 문제를 사용하십시오.