模拟对象如何替换所有正在测试的系统功能?

2024-05-23 13:20:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我对单元测试相当陌生。目前,我在尝试对Google oAuth Picasa身份验证进行单元测试时遇到了麻烦。如果我想对代码进行单元测试,它涉及到对代码的重大更改(是的,我在应用程序运行后开发单元测试)

我已经读到,模仿对象可能是一种方式。但是如果我使用Mock,我怎么知道该功能(即googleoauth-Picasa身份验证)真的在工作呢

或者,除了在应用程序完成后开发单元测试之外,我在理解Mock时是否犯了其他错误


Tags: 对象代码功能程序运行身份验证应用程序错误google
1条回答
网友
1楼 · 发布于 2024-05-23 13:20:11

当进行单元测试时,您在隔离中测试一个特定的单元(函数/方法…),这意味着您不关心您的函数使用的其他组件是否工作(因为还有其他单元测试用例涵盖这些组件)

因此,为了回答您的问题,您的单元测试不包括GoogleOAuth这样的外部服务是否有效。您只需要测试您是否正确调用了它,这就是Mock的用武之地。它会记住对您进行检查并对其做出一些断言的调用,但它会阻止请求实际转到外部服务/组件/库/任何东西

编辑:如果您发现您的代码过于复杂且难以测试,那么可能意味着应该将其重构为更小、更易于管理的部分

相关问题 更多 >