The DirectiveResolver class has been removed from Angular since version 9, and it is not part of the public API anymore. Therefore, if you are using a newer version of Angular (9 or above), you won't be able to use the DirectiveResolver in your tests.

Instead of using DirectiveResolver, you should refactor your unit tests to use the TestBed.configureTestingModule method to configure the testing module with the necessary providers and dependencies.

Here's an example of how to refactor your unit tests:

  1. Import the necessary modules and components:
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { YourComponent } from './your.component'; // Import other dependencies and providers as needed
  1. Create a testing module and configure it with the necessary providers:
describe('YourComponent', () => { let component: YourComponent; let fixture: ComponentFixture<YourComponent>; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [YourComponent], // Add other modules, providers, and dependencies as needed }).compileComponents(); }); beforeEach(() => { fixture = TestBed.createComponent(YourComponent); component = fixture.componentInstance; fixture.detectChanges(); }); // Your test cases go here });
  1. Write your test cases using the component and fixture variables:
it('should create the component', () => { expect(component).toBeTruthy(); }); // Write other test cases as needed

By using TestBed.configureTestingModule, you can configure your testing module with all the necessary dependencies, including components, services, and providers, without needing the deprecated DirectiveResolver.

If you have any specific use case that you were trying to achieve with DirectiveResolver, you might need to find alternative approaches in the newer versions of Angular. The Angular testing documentation ( is a great resource to learn more about writing unit tests in Angular and finding the appropriate testing utilities and methods for your specific scenarios.

Have questions or queries?
Get in Touch