Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Unit testing setUp()方法中的注入导致框架不等待将来完成_Unit Testing_Dependency Injection_Dart_Angular Dart - Fatal编程技术网

Unit testing setUp()方法中的注入导致框架不等待将来完成

Unit testing setUp()方法中的注入导致框架不等待将来完成,unit-testing,dependency-injection,dart,angular-dart,Unit Testing,Dependency Injection,Dart,Angular Dart,我正在测试AngularDart组件。我正在尝试获取模板并将其放入setUp()方法中的TemplateCache。为此,我需要注入模板缓存。但是,setUp()中的注入使框架继续使用测试方法,而不是等待未来的完成。这里是一个简化的例子 导入'dart:async'; 导入“包:角度/角度.dart”; 导入“package:mock/mock.dart”; 导入“包:unittest/unittest.dart”; 导入“包:角度/模拟/测试_注入.dart”; 导入“package:angu

我正在测试AngularDart组件。我正在尝试获取模板并将其放入
setUp()
方法中的
TemplateCache
。为此,我需要注入模板缓存。但是,
setUp()
中的注入使框架继续使用测试方法,而不是等待
未来的
完成。这里是一个简化的例子

导入'dart:async';
导入“包:角度/角度.dart”;
导入“package:mock/mock.dart”;
导入“包:unittest/unittest.dart”;
导入“包:角度/模拟/测试_注入.dart”;
导入“package:angular/mock/module.dart”;
进口“包装:di/di.dart”;
类MyTest{
静态main(){
组(“具有等待的未来的设置”,(){
设置((){
返回新的Future.value(“First”)。然后((u)=>print((u));
});
测试(“欢迎来到明天的世界!”,(){
印刷品(“第二份”);
});
});
组(“具有不等待的未来的设置”,(){
设置(注入((注入器注入){//注入导致测试不等待
返回新的Future.value(“First”)。然后((u)=>print((u));
}));
测试(“欢迎来到明天的世界!”,(){
印刷品(“第二份”);
});
});
}
}
在控制台中,您可以看到打印的消息:第一、第二、第二、第一


我想一定是
注入
没有返回
未来
。我还可以做些什么来让框架注入我需要的对象,并在
setUp()
中等待
未来的

这就是我需要的。错误是试图从
inject
本身返回某些内容。其实就这么简单:

设置(){
// ...
注射((可注射可注射){
//在此处注入对象并将其保存在变量中
});
//使用变量
返回新的Future.value(“First”)。然后((u)=>print((u));
});

您调用的是什么
inject
方法?你能添加你的导入吗?我明天才开始讨论代码,我几乎可以肯定它就是这个库:请做一个完整的例子来重现这个问题。