Не уверен, что вы все еще нужно, но, вероятно, было бы полезно для кого-то
import "angular-mocks/ngMock";
import * as angular from "angular";
import {inject, TestBed} from "@angular/core/testing";
import {Inject, Injectable, FactoryProvider} from "@angular/core";
import {AngularJSService} from "angularjs/angularjs.service" // angularjs service which is upgraded and injected in ExampleService angular service
// upgrading angular js service to make it possible to inject into angular services/components
const UpgradedProvider: FactoryProvider = {
provide: AngularJSService,
useFactory: ($injector: angular.auto.IInjectorService) => {$injector.get('AngularJSService')},
deps: ['$injector']
};
// this is angular service which has upgraded angularjs service in dependency
@Injectable()
class ExampleService {
public name: string = 'Example Service';
constructor(angularJSService: AngularJSService) {
// injecting angular js service
}
}
describe('Angular Example Test Suite ',() => {
let $injector: angular.auto.IInjectorService;
beforeEach(() => {
// init angular js module for test and define upgraded angular js service in this module
angular.module('ExampleTest', []).service('AngularJSService', AngularJSService);
});
beforeEach(angular.mock.module('ExampleTest'));
beforeEach(angular.mock.inject((_$injector_: ng.auto.IInjectorService) => {
$injector = _$injector_;
}));
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
{
provide: '$injector',
useFactory:() => $injector,
deps: []
},
UpgradedProvider,
ExampleService
]
});
});
it('should inject ExampleService', inject([ExampleService], (exampleService: ExampleService) => {
chai.assert.isDefined(exampleService);
}));
});
Или кто-нибудь знает, работающий пример обновления на общедоступном хранилище со смешанным '' angularjs'and angular' в его тесты? –