2017-11-01 17 views
0

私が正しくコードのこのビットをテストする方法を考え出すいくつかの困難を抱えているを完了するのに失敗します。モカはテスト

const chai = require('chai') 
const chaiHttp = require('chai-http') 
const restify = require('restify') 
const errs = require('restify-errors') 

const expect = chai.expect 
chai.use(chaiHttp) 

const willerror = true 

const server = restify.createServer() 
server.get('/', function (req, res, next) { 
    if (!willerror) res.send() 
    next(willerror ? new errs.InternalServerError() : null) 
}) 

describe('Server test', function() { 
    before(async function() { 
    const c = {config: {dev: {driver: 'sqlite3', filename: ':memory:'}}} 
    const dbm = require('db-migrate').getInstance(true, c) 
    dbm.silence(true) 
    await dbm.reset().then(() => dbm.up('all', 'all')) 
    }) 
    after(function (done) { 
    server.close(done) 
    }) 
    it('posts', function (done) { 
    const client = chai.request(server) 
    client.get('/') 
     .end((err, res) => { 
     expect(err).to.be.null 
     expect(res).to.have.status(200) 
     done() 
     }) 
    }) 
}) 

(注:これは、少なくとも一つの移行が必要ですが、それはすることができます空:db-migrate create oneで十分です)。

私が手出力:

enter image description here

はなぜ」上がらない:before()コール(ちょうどbefore(async function(){})を残して)私が期待するもの何を与えるの内容を削除する

enter image description here

をこれらのテストは終了しますか?

答えて

0

詳細はdb-migrate registers an uncaughtException handlerです。

これを無効にするには、db-migrateに渡された構成オブジェクトにthrowUncatched: trueを追加します。私の場合:

const c = {throwUncatched: true, config: {dev: {driver: 'sqlite3', filename: ':memory:'}}} 
関連する問題