9

スーパーテストを使用して Express JS REST API をテストすることはできますが、実際のデータベース接続をモック データベース オブジェクトに置き換えることはできますか? データベース モデルとアプリケーションの他の部分をカバーする単体テストと、実際のデータベース接続を行う API エンドポイントの機能テストがありますが、機能テストに似ているがモック データベース接続を使用する統合テストを作成するという奇妙な要件があります。サンプルのエンドポイント コントローラーは次のとおりです。

  var model = require('../../../lib/models/list');

  module.exports = {
    index: function(req, res) {
      var data = { key: 'domains', table: 'demo.events'};

      var dataModel = new model(data);

      dataModel.query().then(function(results) {
        res.respond({data: results}, 200);
      }).fail(function(err) {
        console.log(err);
        res.respond({message: 'there was an error retrieving data'}, 500);
      });
    }
  };

そしてURIのインデックスは

var express = require('express'), app, exports;
app = exports = module.exports = express();

exports.callbacks = require('./controller');

app.get('/', exports.callbacks.index);

コントローラーで使用されるリスト モデルは、データベースに接続し、出力されるデータを取得します。課題は、スーパーテストを使用してリクエストを作成し、URI からデータを取得しながら、実際のデータベース呼び出しをモックすることです。

これが悪い、または無意味な考えだと思う場合を含め、どんな情報でも役に立ちます

4

1 に答える 1