python ruby-programming-language Smalltalk Vue.js Knockoutjs TypeScript JavaScript, OOPs JavaScript Angular 7, Interview Questions Angular 8,7,6,5,4 and 2 Interview Questions and Answers Angular 8,7,6,5,4 and 2 Interview Questions and Answers Angular 4 Angular 2 AngularJs 1.x NodeJs Perl Programming R Programming RequireJs Rust Programming Backbonejs closure programming language go-programming-language kotlin-programming-language
What Is Jasmine?

What Is Jasmine? Why Use Jasmine In Angular?

The Jasmine is a test framework provides for JavaScript to write tests and the aim of Jasmine to run on any JavaScript enabled platform like AngularJs, Angular, and Node.js and so on.

It is easy to read and write the tests and this test runner executes tests in the browsers.

The Jasmine previously developed a similar unit testing framework called JsUnit.

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"
  }

Jasmine provides a rich set of Pre-defined Matchers - default set of matchers
1.     expect(number).toBeGreaterThan(number);
2.     expect(number).toBeLessThan(number);
3.     expect(array).toContain(member);
4.     expect(array).toBeArray();
5.     expect(fn).toThrow(string);
6.     expect(fn).toThrowError(string);
7.     expect(instance).toBe(instance); represents the exact equality (===) operator.
8.     expect(mixed).toBeDefined();
9.     expect(mixed).toBeFalsy();
10.  expect(mixed).toBeNull();
11.  expect(mixed).toBeTruthy();
12.  expect(mixed).toBeUndefined();
13.  expect(mixed).toEqual(mixed);   represents the regular equality (==) operator.
14.  expect(mixed).toMatch(pattern);  calls the RegExp match() method behind the scenes to compare string data.
15.  expect(number).toBeCloseTo(number, decimalPlaces);
16.  expect(number).toBeNaN();
17.  expect(spy).toHaveBeenCalled();
18.  expect(spy).toHaveBeenCalledTimes(number);
19.  expect(date).toBeAfter(otherDate);
20.  expect(date).toBeBefore(otherDate);
21.  expect(date).toBeDate();
22.  expect(date).toBeValidDate();
23.  expect(object).toHaveDate(memberName);
24.  expect(object).toHaveDateAfter(memberName, date);
25.  expect(object).toHaveDateBefore(memberName, date);
26.  expect(regexp).toBeRegExp();
27.  expect(string).toBeEmptyString();
28.  expect(string).toBeHtmlString();
29.  expect(string).toBeIso8601();
30.  expect(string).toBeJsonString();
31.  expect(string).toBeLongerThan();
32.  expect(string).toBeString();

Default set of Asymmetric Matchers-
1.     jasmine.any(Constructor);
2.     jasmine.anything(mixed);
3.     jasmine.arrayContaining(mixed);
4.     jasmine.objectContaining(mixed);
5.     jasmine.stringMatching(pattern);

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!!!
ANIL SINGH

Hi there! Welcome to my blog. My name is Anil Singh. I'm a author of this blog. For more detail about me, kindly refer to this link..
My Blogs - http://code-sample.com and http://code-sample.xyz
My Books - Interview Questions and Answers Books- Get Your Book in 15+ Digital Stores Worldwide..

You Might Also Like
www.code-sample.com/. Powered by Blogger.
ASK Questions