2016-10-12 3 views
0

Ich habe seit Tagen mit dem Aufbau eines geeigneten Testworkflows zu kämpfen. Ich weiß, dass Tests Datenbankabhängigkeiten spotten sollten, aber der Fall ist, dass ich den gesamten Prozess zusammen mit echten DB-Abfragen testen muss. Im folgenden Code muss ich mein Modell fordern, damit ich Operationen auf db ausführen kann, wie das Löschen von Testdaten und das Drücken von Testdaten.TypeScript, Mungo, Jasmin - Schemas erforderlich

Die Fragen sind:

  1. Was Referenzierung das Schema/Modell der richtige Weg ist?

  2. Oder gibt es eine Möglichkeit, Jasmine Tests mit Typoskript zu schreiben?

Der Code funktioniert nicht, wie er sagt, dass BucketConfigS.remove keine Funktion:

'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 
      }); 
     }); 
    }); 
}); 

Ich habe auch versucht die Linie folgende erfordern:

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

aber es brokes die gesamte Testsuite (keine Testergebnisse sind ausgeschrieben).

Die Schemadatei sieht wie folgt aus:

"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; 

Dies ist ein Übersetzungsergebnis von:

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; 

Antwort

0

nicht sicher, warum, aber

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

zu arbeiten begann ...

Verwandte Themen