2016-07-06 15 views
0

私は、Mochaを使用して40以上のAPIエンドポイントをテストしようとしています。私は単一のサーバー呼び出しの一部としていくつかのサブテストを実行したいと思います。モカ:複数の "it"が単一のサーバーリクエストで呼び出す

例えば、私はなど、it('returns valid JSON...it('returns a valid status code...かどうかをテストしたいと思います

configs.forEach(function(config) { 

    describe(config.endpoint,() => { 

     it('...', function(done) { 
      server 
       .post(config.endpoint) 
       .send({}) 
       .expect('Content-type', /json/) 
       .expect(200) 
       .end(function(err, res) { 

        //it('has a proper status code',() => { 
        expect(res.status).toEqual(200); 
        //}) 

        //it('does not have an error object',() => { 
        expect(res.body.hasOwnProperty('error')).toEqual(false); 
        //}) 

        done(); 
       }) 
     }) 

    }) 

}) 

問題は、私は巣it文ができないということですが、私は時に指示するdone()を経由して、コールバックに頼っていますこれらの要求の一部を解決するために、第2の半分を取り、そのうちの40 +があるので、私はないを行う

...応答が受信されているので、私はit文で呼び出しをラップする必要がありますセパラを作成したいこれらのテストを行います。別々のテストを作成すると、config.endpointも複製されます。テストが各エンドポイントで1つの場所に渡っているかどうか確認したいと思います。

1回のサーバーコールで複数のテストを作成するにはどうすればよいですか?

+0

モックコールバック、それは簡単になると思いますか? –

+0

'it(...'?)からのコールバックを模擬してください。 – Himmel

答えて

0
configs.forEach(function(config) { 

     describe(config.endpoint,() => { 

      var response;  
      it('...', function(done) { 
       server 
        .post(config.endpoint) 
        .send({}) 
        .expect('Content-type', /json/) 
        .expect(200) 
        .end(function(err, res) { 
          response=res; 
          done(); 
         }) 
      }); 

        it('has a proper status code',() => { 
          expect(response.status).toEqual(200); 
        }) 

        it('does not have an error object',() => { 
          expect(response.body.hasOwnProperty('error')).toEqual(false); 
        }) 

     }) 
}) 

この内容はどうですか? テストケースのネストについてはわかりませんが、それはうまくいくでしょう。

+0

この場合、最初の 'it'が次の2つの前に実行されるという事実に頼っています。 – MarcoL

関連する問題