The Karma test runner and it use to writing and
running the unit tests while developing the application. It can be a compulsory
part of the project's development.
The List of Karma Dependencies -
1. karma
2. karma-chrome-launcher
3. karma-cli
4. karma-coverage-istanbul-reporte
5. karma-jasmine
6. karma-jasmine-html-reporter
npm
install --save-dev
<all-of-the-above-dependencies >
You
should Install the Karma CLI globally -
npm
install -g
karma-cli
The package.json
contents should now have the following -
"devDependencies":
{
"@angular/cli":
"1.5.0",
"@angular/compiler-cli":
"^5.0.0",
"@angular/language-service":
"^5.0.0",
"@types/jasmine":
"~2.5.53",
"@types/jasminewd2":
"~2.0.2",
"@types/node":
"~6.0.60",
"codelyzer":
"~3.2.0",
"jasmine-core":
"~2.6.2",
"jasmine-spec-reporter":
"~4.1.0",
"karma":
"~1.7.0",
"karma-chrome-launcher":
"~2.1.1",
"karma-cli":
"~1.0.1",
"karma-coverage-istanbul-reporter":
"^1.2.1",
"karma-jasmine":
"~1.1.0",
"karma-jasmine-html-reporter":
"^0.2.2",
"protractor":
"~5.1.2",
"ts-node":
"~3.2.0",
"tslint":
"~5.7.0",
"typescript":
"~2.4.2"
}
Example
- By Karma and Jasmine in Angular Apps
import
{ TestBed, async
} from '@angular/core/testing';
import
{ AppComponent } from
'./app.component';
describe('AppComponent',
() => {
beforeEach(async(()
=> {
TestBed.configureTestingModule({
declarations: [
AppComponent
],
}).compileComponents();
}));
it('should create the
app', async(()
=> {
const fixture
= TestBed.createComponent(AppComponent);
const app
= fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
}));
it(`should have as
title 'app'`, async(()
=> {
const fixture
= TestBed.createComponent(AppComponent);
const app
= fixture.debugElement.componentInstance;
expect(app.title).toEqual('app');
}));
it('should render
title in a h1 tag', async(()
=> {
const fixture
= TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled
= fixture.debugElement.nativeElement;
expect(compiled.querySelector('h1').textContent).toContain('Welcome
to app!');
}));
});
I hope you are enjoying with this post! Please
share with you friends!! Thank you!!!