2016-10-12 4 views
0

私は数日間、適切なテストワークフローを構築する方法に苦労してきました。テストではデータベースの依存関係を模倣すべきだが、実際のdbクエリと一緒にプロセス全体をテストする必要があるケースがある。 次のコードでは、テストデータの削除やテストデータのプッシュなど、dbの操作を実行できるようにモデルを必要としています。TypeScript、Mongoose、Jasmine - スキーマが必要

質問は以下のとおりです。

  1. スキーマ/モデルを参照する適切な方法は何ですか?

  2. または、typescriptを使用してジャスミンテストを書く方法がありますか?それはbrokesしかし

    let BucketConfigS = require('../dist/app/BucketConfig/BucketConfigSchema').default; 
    

    'use strict'; 
    let BucketConfigS = require('../dist/app/BucketConfig/BucketConfigSchema'); 
    
    describe('Bucket config collection:',() => { 
        describe('GetAll service -',() => { 
         describe('Given that there are no configs', function() { 
          beforeEach(done => { 
           done(); 
          }); 
          afterEach(done => { 
           BucketConfigS.remove({}, done); 
           done(); 
          }); 
          it('should return an empty array', function() { 
           // test case 
          }); 
         }); 
        }); 
    }); 
    

    は、私はまた、必要とする以下の行を試してみました:それはBucketConfigS.removeが関数ではないことを言うように

コードは、動作しません。テストスイート全体(テスト結果は書き出されません)。

スキーマファイルは次のようになります。

"use strict"; 
var DataAccess_1 = require("./../common/DataAccess"); 
var mongoose = DataAccess_1.DataAccess.mongooseInstance; 
var mongooseConnection = DataAccess_1.DataAccess.mongooseConnection; 
var BucketConfigSchema = (function() { 
    function BucketConfigSchema() { 
    } 
    Object.defineProperty(BucketConfigSchema, "schema", { 
     get: function() { 
      var schema = mongoose.Schema({ 
       AppName: { 
        type: String, 
        required: true 
       }, 
       Platform: { 
        type: String, 
        required: true 
       }, 
       Segment: { 
        type: String, 
        required: true 
       }, 
       UpdateTime: { 
        type: Date, 
        default: Date.now 
       } 
      }); 
      return schema; 
     }, 
     enumerable: true, 
     configurable: true 
    }); 
    return BucketConfigSchema; 
}()); 
var BucketConfig = mongooseConnection.model("BucketConfig", BucketConfigSchema.schema); 
Object.defineProperty(exports, "__esModule", { value: true }); 
exports.default = BucketConfig; 

これは、のコンパイル結果である:

import { DataAccess } from "./../common/DataAccess"; 
import { IBucketConfig } from "./IBucketConfig"; 

let mongoose = DataAccess.mongooseInstance; 
let mongooseConnection = DataAccess.mongooseConnection; 

class BucketConfigSchema { 

    static get schema() { 
     let schema = mongoose.Schema({ 
      AppName: { 
       type: String, 
       required: true 
      }, 
      Platform: { 
       type: String, 
       required: true 
      }, 
      Segment: { 
       type: String, 
       required: true 
      }, 
      UpdateTime: { 
       type: Date, 
       default: Date.now 
      } 
     }); 

     return schema; 
    } 
} 

let BucketConfig = mongooseConnection.model<IBucketConfig>("BucketConfig", BucketConfigSchema.schema); 
export default BucketConfig; 

答えて

0

なぜわからないが、

let BucketConfigS = require('../dist/app/BucketConfig/BucketConfigSchema').default; 

が仕事を始めた...

関連する問題