我正在使用Jasmine创建我的单元测试,我对所涉及的分支有疑问.
有谁知道为什么代码部分显示分支未被覆盖,我们可以在下面看到?
这是单元测试:
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
let myService: MyService;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyComponent ],
imports: [ MaterializeModule, FormsModule, ReactiveFormsModule, HttpModule ],
providers: [
MyService,
FormBuilder
]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
slotsService = TestBed.get(MyService);
fixture.detectChanges();
});
function updateForm(name, surname) {
component.myForm.controls['name'].setValue(name);
component.myForm.controls['surname'].setValue(name);
}
it('should create', () => {
expect(component).toBeTruthy();
});
}
Run Code Online (Sandbox Code Playgroud) 有谁知道我该如何测试Router NavigationEnd Event?我在 Angular 2 中有下面的代码,我正在使用 Jasmine。
import { Injectable, EventEmitter } from '@angular/core';
import { Router, NavigationEnd, Event } from '@angular/router';
@Injectable()
export class IhmPageClassService {
emitPageClass = new EventEmitter<string>();
currentRoute: string;
constructor(router: Router) {
router.events.subscribe((event: Event) => {
if (event instanceof NavigationEnd) {
this.currentRoute = (<NavigationEnd>event).url;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
在我的app.component.ts中,我有下面的代码来获取路由名称,但我总是得到/.有谁知道为什么?我期望能获得例如home,contact.
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor(private router: Router) {
console.log(router.url);
}
}
Run Code Online (Sandbox Code Playgroud)