In this post, you will be learning how to start a single unit test with Karma test runner in Angular.
ng new angular-single-karma-test-tutorial
cd angular-single-karma-test-tutorial
I know you can do just run an ng test
command and it will run all of the spec files it finds and the tests in it, but for now, I would like to run just one that is made by me.
custom-test.spec.ts
import { TestBed, async } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
describe('AppComponentCustom', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
RouterTestingModule
],
declarations: [
AppComponent
],
}).compileComponents();
}));
it('should sum properly', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app.sum(1, 3)).toEqual(4);
});
});
app.component.ts
export class AppComponent {
sum(n1: number, n2: number) {
return n1 + n2;
}
}
Now put f
in front of describe
to focus only on that describe like describe
and f
in front of it
to focus only on that test single test fit
.
ng test
And it should all work out for you, testing a single file, this will still show you all test but run only one. If you want to run only a single file just edit your test.ts
with the path of your single file in my case is: ./src/app/custom-test.spec.ts
.
Just replace
const context = require.context('./', true, /\.spec\.ts$/);
in test.ts
with
const context = require.context('./', true, /custom-test\.spec\.ts$/);
and run again ng test
.
And with that, you should have enough knowledge to test our components or classes by yourself in Angular.