Repository navigation
Using TestBed with NativeScript #478
Copy link
Copy link
Closed
Description
How can I use TestBed with NativeScript. This spec is not working:
import 'reflect-metadata';
import {Router} from '@angular/router';
import {BaseRequestOptions, Response, Http, ResponseOptions} from '@angular/http';
import {MockBackend} from '@angular/http/testing';
import {Page} from 'ui/page';
import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing';
import {inject, TestBed} from '@angular/core/testing';
import {SettingsService, AuthService, Logger, User} from '@abc/angular-common';
import * as appSettings from 'application-settings';
import {ApplicationSettingsService} from '../../services/app_settings.service';
import {AppLogService} from '../../services/app_logger.service';
import {RouterMock} from '../mocks/router.mock';
import {ProfileComponent} from '../../components/profile/profile.component';
import {MockConnection} from '@angular/http/testing/mock_backend';
TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
describe('ProfileComponent', () => {
// provide our implementations or mocks to the dependency injector
beforeEach(() => {
appSettings.clear();
TestBed.configureTestingModule({
providers: [
{provide: Router, useClass: RouterMock},
{provide: Logger, useClass: AppLogService},
{provide: SettingsService, useClass: ApplicationSettingsService},
BaseRequestOptions,
MockBackend,
{
provide: Http,
useFactory: (backend, defaultOptions) => {
return new Http(backend, defaultOptions);
},
deps: [MockBackend, BaseRequestOptions]
},
AuthService,
Page,
ProfileComponent
]
});
});
it('should init', inject([ProfileComponent], (profile) => {
expect(profile).toBeDefined();
}));
it('should get user on init', inject([ProfileComponent, AuthService], (profile, authService) => {
let user: User = new User();
user.username = 'test';
spyOn(authService, 'getUser').and.callFake(() => {
return user;
});
// trigger init to get user
profile.ngOnInit();
expect(authService.getUser).toHaveBeenCalled();
expect(profile.user).toBe(user);
}));
});
TestBed would be nice as it gives the ability to have several injects in a test case
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
hypery2k commentedon Oct 18, 2016
any news on this?
hdeshev commentedon Dec 9, 2016
Closing in favor of #479