Erreur: Can't resolve all parameters for ActivatedRoute
Ajouter dans providers:
providers: [ { provide: ActivatedRoute, useValue: { params: of({id: 123}), }, }, ],
Erreur Template parse errors: 'router-outlet' is not a known element
imports : RouterTestingModule.withRoutes([]), providers : RouterOutlet
Erreur: NullInjectorError: No provider for Store!
imports: [ StoreModule.forRoot({}) ]
Template parse errors: Can't bind to 'formGroup' since it isn't a known property of 'form'
import ReactiveFormsModule
Si le component utilise la .value d'un contrôle, ajouter dans le mock de FormGroup:
public form: FormGroup = new FormGroup({ firstName: new FormControl(''), });
Positioner et maximiser le browser sur le deuxième écran lors de développement de tests :
await browser.driver .manage() .window() .setPosition(2400, 100); await browser.driver .manage() .window() .maximize();
const video = require('./video'); test('plays video', () => { const spy = jest.spyOn(video, 'play'); const isPlaying = video.play(); expect(spy).toHaveBeenCalled(); expect(isPlaying).toBe(true); spy.mockReset(); spy.mockRestore(); });
Si on veut overrider le provider, pour changer par exemple les valeurs on peut utiliser TestBed.overrideProvider(). Ici, dans le beforeEach(), le TestBed normal est fait avec la spécification des providers.
it('should take value from environment if not set in AppConfig', () => { mockAppConfig.baseUrl = '__BASE_URL__'; mockEnvironment.baseUrl = 'https://someurl'; TestBed.overrideProvider(APP_CONFIG, { useValue: mockAppConfig, }); service = TestBed.get(ConfigService); expect(service.config.baseUrl).toEqual( mockEnvironment.baseUrl, ); });