web-dev-qa-db-ja.com

Angular 2 / Jasmineテストでのtestbed.getとinjectの違いは何ですか?

私はAngular 2テストに慣れていません。テストレベルでtestsbed.get()を使用することとinjectを使用することの違いを理解しようとしています。

例えば:

beforeEach(() => {
    TestBed.configureTestingModule({
        providers: [SomeService]
    });

    const testbed = getTestBed();
    someService= testbed.get(SomeService);
  });
});

it('test service', inject([SomeService], (someService: SomeService) => {
27
csaldanh

injectヘルパー関数は、AngularJS以降、直接インジェクター呼び出しの代わりとして使用されていました。 Angular 1では、bootstrap _ngMockを使用したテストが必要でした。 Angular 2以降では完全にオプションであり、TestBedテストでのDIの推奨方法にすぎません。

これはtestBed.get の便利なラッパーであり、次のように複数のtestBed.get呼び出しを回避できます。

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

他のヘルパー関数は、inject、つまりasyncおよびfakeAsyncと組み合わせてオプションで使用できます。

24
Estus Flask