首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为管道配置testBed的С

为管道配置testBed的С
EN

Stack Overflow用户
提问于 2021-06-24 04:14:01
回答 2查看 31关注 0票数 0

同事们,谁能告诉我,我正在尝试为管道配置testBed,只有当我将管道本身放入提供者中时,它才能起作用,我将对其进行测试。我无论如何也绕不开这件事,你能告诉我出什么事了吗?第二个问题:除了转换方法之外,我在管道中还有一个私有方法,我如何测试它?

EN

回答 2

Stack Overflow用户

发布于 2021-06-24 04:26:21

我会尝试用this的方式来做。

但是让它作为一个提供者是很好的,你正在抓住它的把柄。

要测试私有方法,您可以设置适当的环境,使其遍历私有方法。

代码语言:javascript
复制
@Pipe({ name: 'xyz', pure: true })
export class SdDateFormatPipe implements PipeTransform {
   value: number;
   constructor(private datePipe: DatePipe, private configService: ConfigService) {}

   transform(value: string): string {
     if (value.includes('a')) {
       this.setValue(1);
     } else {
       this.setValue(2);
     }
   }

   private setValue(num: number) {
     this.value = num;
   }
}
代码语言:javascript
复制
it("should set value to 1 if the string has a", () => {
  pipe.transform('abc');
  expect(pipe.value).toBe(1);
});

it("should set value to 2 if the string does not have an a", () => {
  pipe.transform('xyz');
  expect(pipe.value).toBe(2);
});

因此,最终,看看你从私有方法中得到了什么,并断言它做了它应该做的事情。

票数 1
EN

Stack Overflow用户

发布于 2021-06-24 04:27:01

如果没有depedencies注入,您可以使用let管道= new SdDateFormatPipe()进行实例化。

关于私有方法,它可能是在公共方法内部调用的,所以为了在测试中涵盖它,正确和推荐的方法是制作一个测试用例,在测试用例中它将调用私有方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68106533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档