当前位置:  开发笔记 > 运维 > 正文

我怎样才能避免全球状态?

如何解决《我怎样才能避免全球状态?》经验,为你挑选了1个好方法。

所以,我正在阅读谷歌测试博客,它说全球状态很糟糕,并且很难编写测试.我相信 - 我的代码现在很难测试.那我该如何避免全球状态呢?

我使用全局状态(据我所知)最重要的事情是在开发,接受和生产环境之间管理关键信息.例如,我有一个名为"Globals"的静态类,其静态成员名为"DBConnectionString".当应用程序加载时,它确定要加载哪个连接字符串,并填充Globals.DBConnectionString.我在Globals类中加载文件路径,服务器名称和其他信息.

我的一些函数依赖于全局变量.因此,当我测试我的函数时,我必须记住先设置某些全局变量,否则测试将失败.我想避免这种情况.

有没有一种管理状态信息的好方法?(或者我是否错误地了解全球状态?)



1> Andrew..:

依赖注入是您正在寻找的.不要让这些函数出去寻找它们的依赖关系,而是将依赖项注入函数中.也就是说,当你调用函数时,它们会传递他们想要的数据.这样就很容易将测试框架放在一个类中,因为你可以在适当的地方插入模拟对象.

很难避免某些全局状态,但最好的方法是在应用程序的最高级别使用工厂类,而低于最高级别的所有内容都基于依赖注入.

两个主要好处:一,测试更容易,两个,你的应用程序更松散耦合.您依赖于能够针对类的接口而不是其实现进行编程.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有