代码之家  ›  专栏  ›  技术社区  ›  Arthur Daniel

缺少测试的配置文件-渡槽

  •  0
  • Arthur Daniel  · 技术社区  · 9 年前

    在用渡槽实现OAuth时,我错误地遵循了测试驱动的开发思想,我现在为此付出了代价。。。

    "No configuration file found. See README.md."
    

    它是从我的AppSink类中的initializeApplication方法抛出的。 据我所知,测试使用config.src。yaml文件,因此我相应地配置了测试线束:

    application = new Application<OdexSink>();
    application.configuration.port = 0;
    application.configuration.configurationFilePath = "config.src.yaml";
    

    我的测试设置如下:

    var app = new Application<OdexSink>();
    TestClient client;
    
    setUp(() async {
       await app.start(runOnMainIsolate: true);
       client = new TestClient(app);
    
       var ctx = ManagedContext.defaultContext;
       var builder = new SchemaBuilder.toSchema(ctx.persistentStore, new Schema.fromDataModel(ctx.dataModel), isTemporary: true);
    
       for (var cmd in builder.commands) {
         await ctx.persistentStore.execute(cmd);
       }
    });
    

    Future start() async {
       RequestController.letUncaughtExceptionsEscape = true;
       application = new Application<OdexSink>();
       application.configuration.port = 0;
       application.configuration.configurationFilePath = "config.src.yaml";
    
       await application.start(runOnMainIsolate: true);
    
       await createDatabaseSchema(ManagedContext.defaultContext, sink.logger);
       await addClientRecord();
       await addClientRecord(clientID: DefaultClientID, clientSecret: DefaultClientSecret);
    
       client = new TestClient(application)
         ..clientID = DefaultClientID
         ..clientSecret = DefaultClientSecret;
    }
    

    My config.src。yaml文件退出,并包含数据库信息。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Joe Conway    9 年前

    Application 而不是那样 TestApplication 马具应该是这样的

    var app = new TestApplication();
    
    setUp(() async {
       await app.start();
    });
    

    app.client :

    expect(await app.client.request("/endpoint"), hasStatus(200));
    
    推荐文章