Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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
在Angular 2/Jasmine测试中,testbed.get和inject之间有什么区别?_Angular_Jasmine_Testbed - Fatal编程技术网

在Angular 2/Jasmine测试中,testbed.get和inject之间有什么区别?

在Angular 2/Jasmine测试中,testbed.get和inject之间有什么区别?,angular,jasmine,testbed,Angular,Jasmine,Testbed,我是角度2测试的新手。我试图找出在测试级别使用testsbed.get()和仅仅使用inject的区别 例如: vs injecthelper函数自AngularJS作为直接注入器调用的替代方法以来一直被使用。在Angular 1中,有必要使用ngMock引导测试。在Angular 2及更高版本中,它是完全可选的,并且只是测试台测试中DI的一种建议方法 这允许避免多个测试床。get调用,类似于: const [foo, bar] = [Foo, Bar].map(TestBed.get); 其

我是角度2测试的新手。我试图找出在测试级别使用
testsbed.get()
和仅仅使用
inject
的区别

例如:

vs


inject
helper函数自AngularJS作为直接注入器调用的替代方法以来一直被使用。在Angular 1中,有必要使用
ngMock
引导测试。在Angular 2及更高版本中,它是完全可选的,并且只是测试台测试中DI的一种建议方法

这允许避免多个
测试床。get
调用,类似于:

const [foo, bar] = [Foo, Bar].map(TestBed.get);

其他助手函数可以选择性地与
inject
结合使用,即
async
fakeAsync

只是为了添加到现有的答案中,如果像我一样,您发现这个问题是因为您想知道
TestBed.get()
TestBed.inject()之间的区别
据我所知,这与OP最初提出的问题并不完全相同,但它是相关的,而且非常相关

我认为值得一提的是,根据最新的Angular文档,
TestBed.inject()
TestBed.get()
的类型安全替代品

试验台上的角度文档中可以找到


这些使用方法是等效的,但在Angular 9中,首选方法已更新。

TestBed.get()
在Angular 9+中被弃用,而
TestBed.inject()
现在是插入依赖项的首选类型安全方式


为清晰起见,请阅读文档:和。这是一个不赞成的改变。

我为你的标签和标题添加了茉莉花。因为这是这个问题所涉及的关键技术。我没有完整的答案,但要挖掘代码:
inject
calls
testbed.get
。主要区别在于,如果向
inject
提供
AsyncTestCompleter
,它将运行
compileComponents
,并且提供的对象具有完成异步测试执行的
done
函数。看起来这是旧代码,最好使用
async(inject(
取而代之。从这一点看,这似乎是一个语法首选项问题。v4/v2@BrunoLM AsyncTestCompleter已在内部使用。最终用户不关心这一点,它使inject高效地与testBed一样。get
testBed.inject
在Angular v9中引入,同时
testBed.get
被弃用。
it('test service', inject([SomeService], (someService: SomeService) => {
const [foo, bar] = [Foo, Bar].map(TestBed.get);