- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 BsModalRef 显示模式并使用 content
属性发送数据。所以我们有一些像这样的:
this.followerService.getFollowers(this.bsModalRef.content.channelId).subscribe((followers) => {
this.followerList = followers;
this.followerList.forEach((follower) => {
follower.avatarLink = this.setUserImage(follower.userId);
this.followerEmails.push(follower.email);
});
});
我们在 bsModalRef 的内容中设置 channelId (this.bsModalRef.content.channelId
)。它工作正常。现在我正在为此编写单元测试。问题是我无法模拟它。我尝试过覆盖、监视等,但似乎没有任何效果。我正在使用此 link 中提到的方法.一种替代方法是使用 TestBed,但我不太了解它的用途。谁能帮我找到实现这一目标的方法?
最佳答案
我最近不得不做一些类似的事情,并且模拟方法调用有效。棘手的部分是在测试套件和组件中注入(inject) BsModalService。
describe('MyFollowerService', () => {
configureTestSuite(() => {
TestBed.configureTestingModule({
imports: [...],
declarations: [...],
providers: [...]
}).compileComponents();
});
// inject the service
beforeEach(() => {
bsModalService = getTestBed().get(BsModalService);
}
it('test', () => {
// Mock the method call
bsModalService.show = (): BsModalRef => {
return {hide: null, content: {channelId: 123}, setClass: null};
};
// Do the test that calls the modal
});
});
只要您按以下方式调用 bsModal,这种方法就可以工作
let bsModalRef = this.modalService.show(MyChannelModalComponent));
最后,这里有一些链接更深入地介绍了如何使用 TestBed 设置测试。
关于unit-testing - 为单元测试模拟 BsModalRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249152/
我对 Angular 4 还很陌生。我一直在开发 Angular 1.5.x,现在使用 ngUpgrade 混合方法在 Angular 4 中转换相同的应用程序。我在混合应用程序中使用 ngx-boo
我对 Angular 4 还很陌生。我一直在开发 Angular 1.5.x,现在使用 ngUpgrade 混合方法在 Angular 4 中转换相同的应用程序。我在混合应用程序中使用 ngx-boo
我正在使用 BsModalRef 显示模式并使用 content 属性发送数据。所以我们有一些像这样的: this.followerService.getFollowers(this.bsModalR
我正在使用 angular 4 和 ngx-bootstrap 打开模式。一切正常,我通过组件实现模态。我还可以通过 bsModalRef 的 content 属性将数据传递到模态。像这样: this
我是一名优秀的程序员,十分优秀!