Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart unittest pgsql查询错误_Dart - Fatal编程技术网

Dart unittest pgsql查询错误

Dart unittest pgsql查询错误,dart,Dart,我在文件web\u server.dart中找到了一些代码,它放在bin文件夹中: import 'dart:async'; import 'package:redstone/server.dart' as app; import 'package:redstone_mapper/mapper.dart'; import 'package:redstone_mapper/plugin.dart'; import 'package:redstone_mapper_pg/manager.dar

我在文件web\u server.dart中找到了一些代码,它放在bin文件夹中:

import 'dart:async';
import 'package:redstone/server.dart' as app; 
import 'package:redstone_mapper/mapper.dart'; 
import 'package:redstone_mapper/plugin.dart'; 
import 'package:redstone_mapper_pg/manager.dart';
import 'package:shelf/shelf.dart' as shelf; 

main() {
  var uri = "postgres://rpss:@10.10.10.10:5432/rty";
  var dbManager = new PostgreSqlManager(uri, min: 1, max: 3);
  app.addPlugin(getMapperPlugin(dbManager));
  app.setupConsoleLog();
  app.start(address: '127.0.0.1', port: 8100);
}

PostgreSql get pgsql => app.request.attributes.dbConn;

Future getNextPlanId() {
  return pgsql.query("select smth from table1", String);
}
library web_server_test;

import 'package:unittest/unittest.dart';
import 'dart:async';
import '../bin/web_server.dart';

void main() {
    group('test1', () { 

     test("Step 1: must be PASS", (){
          return getNextPlanId().then((onValue){
              expect(onValue, hasLength(4));
          });
      });
  }); 
}
另一个dart文件名为web\u server\u test。dart位于test文件夹中:

import 'dart:async';
import 'package:redstone/server.dart' as app; 
import 'package:redstone_mapper/mapper.dart'; 
import 'package:redstone_mapper/plugin.dart'; 
import 'package:redstone_mapper_pg/manager.dart';
import 'package:shelf/shelf.dart' as shelf; 

main() {
  var uri = "postgres://rpss:@10.10.10.10:5432/rty";
  var dbManager = new PostgreSqlManager(uri, min: 1, max: 3);
  app.addPlugin(getMapperPlugin(dbManager));
  app.setupConsoleLog();
  app.start(address: '127.0.0.1', port: 8100);
}

PostgreSql get pgsql => app.request.attributes.dbConn;

Future getNextPlanId() {
  return pgsql.query("select smth from table1", String);
}
library web_server_test;

import 'package:unittest/unittest.dart';
import 'dart:async';
import '../bin/web_server.dart';

void main() {
    group('test1', () { 

     test("Step 1: must be PASS", (){
          return getNextPlanId().then((onValue){
              expect(onValue, hasLength(4));
          });
      });
  }); 
}
当我运行web\u server\u test.dart文件时,我得到一个错误:

测试失败:捕获的空对象没有getter“attributes”。
NoSuchMethodError:找不到方法:“属性”


我试图运行web_server.dart或停止一个。错误正在上升。

在测试中,您似乎没有启动
应用程序。必须为测试调用main中的代码。测试中不会自动调用
main()
函数

您可以在函数中提取其逻辑,并将其称为测试设置


PostgreSql get pgsql=>app.request.attributes.dbConn请求中调用
属性时,code>崩溃了,它可能没有像你希望的那样初始化。

我不知道如何解决你的问题,只是一个建议。不要使用相对路径从其他顶级目录导入。如果要从其他顶级目录导入代码,请将代码移动到
lib
目录中,并使用包导入,如
import'package:my_package/server.dart'从那里导入。