Skip to content

Instantly share code, notes, and snippets.

@mraible
Created November 10, 2019 09:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mraible/6799ef0f466ff062f47c5c86b942a80b to your computer and use it in GitHub Desktop.
Save mraible/6799ef0f466ff062f47c5c86b942a80b to your computer and use it in GitHub Desktop.
Unit Test in Angular 9
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SearchComponent } from './search.component';
import { MockSearchService } from '../shared/search/mocks/search.service.mock';
import { MockActivatedRoute } from '../shared/search/mocks/routes';
import { SearchService } from '../shared';
import { ActivatedRoute } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { RouterTestingModule } from '@angular/router/testing';
describe('SearchComponent', () => {
let component: SearchComponent;
let fixture: ComponentFixture<SearchComponent>;
let mockActivatedRoute: MockActivatedRoute;
beforeEach(async(() => {
mockActivatedRoute = new MockActivatedRoute({term: 'peyton'});
TestBed.configureTestingModule({
declarations: [SearchComponent],
providers: [
{provide: SearchService, useClass: MockSearchService},
{provide: ActivatedRoute, useValue: mockActivatedRoute}
],
imports: [FormsModule, RouterTestingModule]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SearchComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
@mraible
Copy link
Author

mraible commented Nov 10, 2019

Result is:

Chrome 78.0.3904 (Mac OS X 10.15.1) SearchComponent should create FAILED
	TypeError: this.getSpy is not a function
	    at <Jasmine>
	    at new MockSearchService (http://localhost:9876/_karma_webpack_/src/app/shared/search/mocks/search.service.mock.ts:16:41)
	    at Object.factory (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:18396:1)
	    at R3Injector.hydrate (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:18272:42)
	    at R3Injector.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:18034:1)
	    at NgModuleRef$1.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:35741:1)
	    at Object.get (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:33568:1)
	    at getOrCreateInjectable (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:5706:1)
	    at ɵɵdirectiveInject (http://localhost:9876/_karma_webpack_/node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js:22203:1)
	    at NodeInjectorFactory.SearchComponent_Factory [as factory] (ng:///SearchComponent/ɵfac.js:3:43)
	Error: Expected undefined to be truthy.
	    at <Jasmine>
	    at UserContext.<anonymous> (http://localhost:9876/_karma_webpack_/src/app/search/search.component.spec.ts:36:23)
	    at ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-evergreen.js:365:1)
	    at ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-testing.js:3Chrome 78.0.3904 (Mac OS X 10.15.1): Executed 1 of 9 (1 FAILED) (skipped 8) ERROR (0.131 secs / 0.114 secs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment