Dart unittest pgsql查询错误
我在文件web\u server.dart中找到了一些代码,它放在bin文件夹中: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
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'代码>从那里导入。