मैं का उपयोग कर AngularFire 2 प्रमाणन एक नमूना कोणीय 2 एप्लिकेशन के लिए इकाई परीक्षण स्थापित करने के लिए कोशिश कर रहा हूँ, घटक काफी सरल है:इकाई परीक्षण में AngularFire 2 सेवा का नकल कैसे करें?
import { Component } from '@angular/core';
import { AngularFire, AuthProviders } from 'angularfire2';
@Component({
moduleId: module.id,
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css']
})
export class AppComponent {
isLoggedIn: boolean;
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => {
if (auth) {
this.isLoggedIn = true;
} else {
this.isLoggedIn = false;
}
});
}
loginWithFacebook() {
this.af.auth.login({
provider: AuthProviders.Facebook
});
}
logout() {
this.af.auth.logout();
}
}
सभी मैं कर रहा हूँ AngularFire में login
और logout
तरीकों के चारों ओर लपेटकर है इसलिए मैं अगर तरीकों कहा जाता था की जांच करने के एक नकली उपयोग करने के बारे में सोच रहा था, लेकिन मुझे यकीन है कि जहां शुरू करने के लिए, मैं अपने कल्पना फ़ाइल में निम्न कर की कोशिश की नहीं कर रहा हूँ:
import { provide } from '@angular/core';
import { AngularFire } from 'angularfire2';
import {
beforeEach, beforeEachProviders,
describe, xdescribe,
expect, it, xit,
async, inject
} from '@angular/core/testing';
import { AppComponent } from './app.component';
spyOn(AngularFire, 'auth');
beforeEachProviders(() => [
AppComponent,
AngularFire
]);
describe('App Component',() => {
it('should create the app',
inject([AppComponent], (app: AppComponent) => {
expect(app).toBeTruthy();
})
);
it('should log user in',
inject([AppComponent], (app: AppComponent) => {
expect(app.fb.auth.login).toHaveBeenCalled();
})
);
it('should log user out',
inject([AppComponent], (app: AppComponent) => {
expect(app.fb.auth.logout).toHaveBeenCalled();
})
);
});
हालांकि मुझे यकीन है कि कैसे करने के लिए नहीं कर रहा हूँ login
और logout
विधियों का नकल करें क्योंकि वे इसका हिस्सा हैं auth
संपत्ति, auth
पर नकल करने का कोई तरीका है और login
और logout
विधियों को वापस करने का कोई तरीका है?
दिलचस्पी पाठक को इस दर्द को कम करने के संबंध में [इस मुद्दे] (https://github.com/angular/angularfire2/issues/18) को ट्रैक करना चाहिए। – drewmoore