나는 프론트 엔드가없는 nodejs 편안한 스타일의 서비스를 가지고 있으며 데이터를 받아들이고 뭔가를 수행합니다.
내가 원하는 대부분의 메소드 레벨 항목을 단위 테스트했지만 이제는 기본적으로 모든 것이 함께 작동 함을 증명하기 위해 일부 자동화 테스트를 수행하고 싶습니다. ASP.MVC 및 IIS를 사용할 때 서버가 항상 켜져 있기 때문에 쉽게 사용할 수 있으므로 시나리오를 설정 (DB에 더미 거프 삽입) 한 다음 HttpRequest를 만들고 서버로 보내고 예상 한대로 돌아 간다고 주장합니다. .
그러나 nodejs에는 응용 프로그램이 명령 줄이나 다른 메커니즘을 통해 실행되어야하므로 몇 가지 문제가 있습니다. 따라서 수신을 시작할 app.js가 있다는 점을 감안할 때 자동으로 시작하는 방법이 있습니까? 내 테스트를 실행 한 다음 테스트가 완료되면 닫으시겠습니까?
현재 테스트를 위해 Mocha와 함께 Yadda를 사용하고 있으므로 BDD 스타일 방식으로 작성할 수 있지만 웹 앱의 시작이 내가 사용중인 프레임 워크에 영향을받지 않기를 바랍니다.
웹 서버를 시작하고 중지하는 몇 가지 방법을 노출하십시오. app.js 파일은 다음과 같을 수 있습니다.
var app = express()
var server = null
var port = 3000
// configure your app here...
exports.start = function(cb) {
server = http.createServer(app).listen(port, function () {
console.log('Express server listening on port ' + port)
cb && cb()
})
}
exports.close = function(cb) {
if (server) server.close(cb)
}
// when app.js is launched directly
if (module.id === require.main.id) {
exports.start()
}
그런 다음 테스트에서 다음과 같이 할 수 있습니다 (모카 기반 예제).
var app = require('../app')
before(function(done) {
app.start(done)
})
after(function(done) {
app.close(done)
})
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다