Angular Testing

What is the Jasmine test framework? Why Jasmine?

What is the Jasmine test framework?
Why Jasmine?
Jasmine is a JavaScript testing framework that supports a software development practice called Behaviour Driven Development that plays very well with Karma.

It’s a specific flavor of Test Driven Development (TDD).

Jasmine is also dependency-free and doesn’t require a DOM.

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);

Lest see the testing example for AppComponent and it look like this.
import { TestBedasync } 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!');
  }));
});

ANIL SINGH

Anil Singh is an author, tech blogger, and software programmer. Book writing, tech blogging is something do extra and Anil love doing it. For more detail, kindly refer to this link..
My Blogs - https://code-sample.com and https://code-sample.xyz
My Book1 - BEST SELLING ANGULAR BOOK (INCLUDING ALL VERSIONS 2, 4, 5, 6, 7)
My Book2 - ANGULAR 2 INTERVIEW QUESTIONS BOOK - Both Books are Available on WorldWide.

www.code-sample.com/. Powered by Blogger.
^