22

私はMochaJSSuperTestを使用して開発中に API をテストしており、非常に気に入っています。

ただし、コードを本番環境にプッシュする前に、これらの同じテストをステージング サーバーのリモート テストにも使用したいと考えています。

リモート URL またはリモート URL へのプロキシを使用してリクエストを提供する方法はありますか?

ここに私が使用するテストのサンプルがあります

        request(app)
        .get('/api/photo/' + photo._id)
        .set(apiKeyName, apiKey)
        .end(function(err, res) {
            if (err) throw err;
            if (res.body._id !== photo._id) throw Error('No _id found');
            done();
        });
4

3 に答える 3

26

スーパーテストでできるかどうかはわかりません。superagentで間違いなく実行できます。スーパーテストはスーパーエージェント上に構築されています。例は次のとおりです。

var request = require('superagent');
var should = require('should');

var agent = request.agent();
var host = 'http://www.yourdomain.com'

describe('GET /', function() {
  it('should render the index page', function(done) {
    agent
      .get(host + '/')
      .end(function(err, res) {
        should.not.exist(err);
        res.should.have.status(200);
        done();
      })
  })
})

したがって、既存のテストを直接使用することはできません。しかし、それらは非常に似ています。そして追加すると

var app = require('../app.js');

host変数を変更することで、ローカル アプリのテストとリモート サーバーでの展開を簡単に切り替えることができます。

var host = 'http://localhost:3000';

編集:

docs#exampleでスーパーテストの例を見つけました

request = request.bind(request, 'http://localhost:5555');  // add your url here

request.get('/').expect(200, function(err){
  console.log(err);
});

request.get('/').expect('heya', function(err){
  console.log(err);
});
于 2012-12-07T09:09:03.120 に答える