Explain the role of manual change detection in unit tests.
01
01
Understand the problem
testingchange-detection
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
Calling detectChanges() during state assertions
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Component } from '@angular/core';
@Component({
template: '<div id="box" [class.active]="isActive">Box</div>'
})
class ToggleComponent {
isActive = false;
}
describe('ToggleComponent', () => {
it('should render correct class bindings on detectChanges', () => {
const fixture = TestBed.createComponent(ToggleComponent);
const comp = fixture.componentInstance;
fixture.detectChanges();
let div = fixture.nativeElement.querySelector('#box');
expect(div.classList.contains('active')).toBeFalse();
comp.isActive = true;
expect(div.classList.contains('active')).toBeFalse();
fixture.detectChanges();
expect(div.classList.contains('active')).toBeTrue();
});
});05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.