Prüfung - nicht lösen Können alle Parameter für (ClassName)

Kontext

Erstellte ich eine ApiService Klasse, um in der Lage sein, mit unseren custom-API Abfragen, die während der Nutzung unserer eigenen serializer + andere features.

ApiService's Konstruktor-Signatur:

constructor(metaManager: MetaManager, connector: ApiConnectorService, eventDispatcher: EventDispatcher);
  • MetaManager ist eine injizierbare service, Griffe api-metadatas.
  • ApiConnectorService ist eine Dienstleistung, die Verpackung Http um unsere benutzerdefinierte Header und Signatur-system.
  • EventDispatcher ist im Grunde Symfony event dispatcher-system, in Maschinenschrift.

Problem

Wenn ich testen die ApiService ich eine Initialisierung in beforeEach:

beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports  : [
            HttpModule
        ],
        providers: [
            ApiConnectorService,
            ApiService,
            MetaManager,
            EventDispatcher,
            OFF_LOGGER_PROVIDERS
        ]
    });
}));

und es funktioniert gut.

Dann Stell ich meinen zweiten spec-Datei, die für ApiConnectorService mit diesem beforeEach:

beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports  : [HttpModule],
        providers: [
            ApiConnectorService,
            OFF_LOGGER_PROVIDERS,
            AuthenticationManager,
            EventDispatcher
        ]
    });
}));

Und alle tests mit diesem Fehler fehlschlagen:

Fehler: Kann nicht beheben Sie alle Parameter für die ApiService: (MetaManager, ?, EventDispatcher).

  • Wenn ich entfernen api-connector-service.spec.ts (ApiConnectorService's spec-Datei) von meinem geladenen tests, ApiService's tests erfolgreich sein werden.
  • Wenn ich entfernen api-service.spec.ts (ApiService's spec-Datei) von meinem geladenen tests, ApiConnectorService's tests erfolgreich sein werden.

Warum habe ich diesen Fehler? Wie es scheint, den Zusammenhang zwischen meiner zwei Dateien in Konflikt stehen, und ich weiß nicht, warum und wie man dieses Problem beheben.

InformationsquelleAutor Supamiu | 2016-09-13

Schreibe einen Kommentar