2017-12-23 21 views
0

ホームルート '/'でGETリクエストをテストしようとしています。 テストが失敗してもらいたいが、常に成功するので、ルートは自分のファイルroot.jsに存在しません。 私はなぜそれが理解できません。 3つのファイルがあります:./test/test.js、./server/server.jsと./server/routes/index.jsモカとチャイのGETリクエストテストが機能しません

/*File: ./test/test.js */ 
 
/* eslint-env mocha */ 
 
const chai = require('chai') 
 
const chaiHttp = require('chai-http') 
 

 
const { expect } = chai 
 
const app = require('../server/server.js') 
 

 
chai.use(chaiHttp) 
 

 
describe('GET Home',() => { 
 
    it('Should return Not found',() => { 
 
    chai 
 
     .request(app) 
 
     .get('/', (err, res) => { 
 
     const result = res.statusCode 
 
     expect(result).to.equal(200) 
 
     }) 
 
    }) 
 
}) 
 

 
/*File: ./server/server.js */ 
 
const express = require('express') 
 
const bodyParser = require('body-parser') 
 
const config = require('./config.js') 
 
const mainRoutes = require('./routes') 
 

 
const app = express() 
 

 
app.set('view engine', 'jade') 
 

 
app.use(bodyParser.urlencoded({ extended: false })) 
 
app.use(mainRoutes) 
 

 
app.listen(config.port,() => { 
 
    console.log(`The application is running on localhost:${config.port}`) 
 
}) 
 

 
module.exports = app 
 

 
/*File: ./server/routes/index.js*/ 
 
const express = require('express') 
 

 
const router = express.Router() 
 

 
// router.get('/', (req, res) => { 
 
// res.render('home') 
 
// }) 
 

 
module.exports = router

+0

あなたのserver.jsを投稿することができますか、またはあなたのルートが定義されていますか? –

+0

はい、私の投稿を更新しました –

+0

routes/index.jsも興味深いかもしれません。 1)route/index.jsに経路が設定されていますが、これはまだ見ていません。 2)jadeを使用していますか?おそらくデフォルトのページが設定されています あなたはローカルにサーバーし、ルートへのGET要求の結果を見ることができます。これはブラウザまたはPostmanから行うことができます。 –

答えて

1

これはあるget実行非同期ので、アサーションexpect(result).to.equal(200)をチェックするにはdone()に電話する必要があります。そうしないと、ルータが存在するかどうかにかかわらず、テストは常にパスします。詳細を知りたい場合はpageをチェックし、Caveatを検索してください。

describe('GET Home',() => { 
    it('Should return Not found', (done) => { 
     chai 
      .request(app) 
      .get('/') 
      .end(function (err, res) { 
       const result = res.statusCode 
       expect(result).to.equal(200) 
       done() 
      }) 
    }) 
}) 
関連する問題