问题在于,如果对象足够复杂(在任何静态类型语言中都是如此),在Typescript中进行mock变得棘手。通常情况下,您会添加一些额外的东西来使代码编译通过,在C#中,您可以使用AutoFixture或类似工具。另一方面,JavaScript是一种动态语言,可能只需要模拟测试运行所需的对象的一部分。
因此,在Typescript单元测试中,我可以使用any
类型声明我的依赖项,从而轻松地进行模拟。您是否看到这种方法的任何缺点?
let userServiceMock: MyApp.Services.UserService = {
// lots of thing to mock
}
对比
let userServiceMock: any = {
user: {
setting: {
showAvatar: true
}
}
}