मैं क्योंकि यह रूटर निर्माता के लिए पैरामीटर की जरूरत है निम्नलिखित कोड ...मैं एक कोणीय 2 मार्ग कैसे बना सकता हूं?
export class LoginComponent {
userName: string;
password: string;
rememberMe: boolean = false;
constructor(private auth: AuthenticationService,
private router: Router) {
...
}
...
}
मैं यूनिट परीक्षण करने के लिए कोशिश कर रहा हूँ, लेकिन मेरा पहला प्रयास विफल हो ....
beforeEach(() => {
router = new Router();
component = new LoginComponent(authService, router);
});
है। Here I saw ...
beforeEach(() => addProviders([
APP_ROUTER_PROVIDERS, // must be first
{provide: APP_BASE_HREF, useValue: '/'}, // must be second
{provide: ActivatedRoute, useClass: Mock},
{provide: Router, useClass: Mock}
]));
लेकिन मैं APP_ROUTER_PROVIDERS
या Mock
मेरी निर्भरता में कहीं है लगता नहीं है, इसलिए मुझे लगता है कि यह बासी हो सकता है (या मैं निर्भरता की जरूरत है)।
मैं इसे कैसे नकल कर सकता हूं? यह उस परीक्षण के लिए भी कोई फर्क नहीं पड़ता जिस पर मैं काम कर रहा हूं। वर्ग
describe('whatever',() => {
let mockRouter: any;
...
beforeEach(async(() => {
// create your own mock
mockRouter = jasmine.createSpyObj('Router', ['navigate']);
...
TestBed.configureTestingModule({
declarations: [LoginComponent],
providers: [
// provide it by value
{ provide: Router, useValue: mockRouter },
...
],
}).compileComponents();
}));
...
});
यह नहीं बल्कि करने के लिए "new
-अप" कोशिश कर रहा से, परीक्षण बिस्तर के निर्भरता इंजेक्शन का उपयोग करता है:
यह वास्तविक परियोजना के तरीके से अलग कैसे होता है (मैंने देखा इससे पहले पोस्ट किया गया)। ऐसा लगता है कि हमें केवल आवश्यकता है ... 'TestBed.configureTestingModule ({आयात: [राउटरटेस्टिंग मॉड्यूल]}); 'और' राउटर = TestBed.get (राउटर);'? मैंने अभी तक इसका परीक्षण नहीं किया है, हालांकि मुझे यकीन नहीं है कि यह काम करता है। – Jackie
@ जैकी आपका क्या मतलब है * "वास्तविक परियोजना" *? – jonrsharpe
https://github.com/angular/angular/blob/master/modules/%40angular/router/test/router.spec.ts – Jackie