问题是如果对象足够复杂(在任何强类型语言中),在Typescript中嘲讽会变得棘手。你通常会嘲笑一些额外的东西来编译代码,例如在C#中,你可以使用AutoFixture或类似的东西。另一方面,Javascript是动态语言,可以仅模拟测试运行所需的对象的一部分。在Typescript单元测试中嘲弄
因此,在Typescript单元测试中,我可以使用any
类型声明我的依赖关系,因此可以轻松地对它进行嘲弄。你看到这种方法的缺点吗?
let userServiceMock: MyApp.Services.UserService = {
// lots of thing to mock
}
VS
let userServiceMock: any = {
user: {
setting: {
showAvatar: true
}
}
}
我写了一篇文章比较这两个库:https://medium.com/@michal.m.stocki/when-it-comes-to-mocking-in-typescript-be8531d39327 – Terite
我写我自己的工具来处理这个相同的问题,并且我会喜欢它的一些反馈:https://medium.com/default-to-open/unit-testing-with-angular-and-ineeda-76746a0c8f58 – phenomnomnominal