我已经创建了许多共享项目,我正在测试这些是否可以在我希望和期望的所有不同项目类型之间共享.到目前为止,我已经管理了所有这些(有时还有一些解决方法),但我还不知道如何使用.NET Core类库来实现它,这非常有用.
我似乎无法通过Visual Studio 2015来实现,有没有人知道这样做的方法?也许直接在类库的project.json文件中输入引用?
编辑:从Visual Studio 2017 RC开始,Shared Projects可以正常使用.NET Core项目.
假设我想简单地对一个组件进行单元测试,该组件采用从路径的一部分获取的参数.例如,我的组件的ngOnInit看起来像这样:
ngOnInit() {
this.route.parent.params.switchMap((params: Params) => this.service.getProject(params['projectId']))
.subscribe((project: Project) => this.update(project));
}
Run Code Online (Sandbox Code Playgroud)
我现在该怎么做:1:设置我的测试,以便组件创建工作,所以我可以单元测试其他部分
用回答编辑 - 示例ActivatedRouteStub应该使用也有可观察的params的父进行扩展,我应该使用useClass而不是useValue(忘了改回来):
@Injectable()
export class ActivatedRouteStub {
// ActivatedRoute.params is Observable
private subject = new BehaviorSubject(this.testParams);
params = this.subject.asObservable();
// Test parameters
private _testParams: {};
get testParams() { return this._testParams; }
set testParams(params: {}) {
this._testParams = params;
this.subject.next(params);
}
// ActivatedRoute.snapshot.params
get snapshot() {
return { params: this.testParams };
}
// ActivatedRoute.parent.params
get parent() {
return { params: this.subject.asObservable() };
}
}
Run Code Online (Sandbox Code Playgroud)
2:在我的UnitTest中为projectId提供一个值?
来自angular2文档的示例似乎不适用于switchMap,甚至根本不适用(我从那里使用过ActivatedRouteStub,但到目前为止没有运气 - …