問題是如果對象足夠複雜(在任何強類型語言中),在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