代码改变世界

单元测试时如何设定私有变量、调用私有成员函数

2012-01-13 22:42 by xiaozha007, 963 阅读, 1 推荐, 收藏,
摘要:进行单元测试时,一般情况下测试类的public函数就ok了,因为如果所有public函数都走完了还没有覆盖到private或者protected的函数的话,说明这个类的设计有点问题了。但是,很多需要测试的函数的行为依赖于私有变量的值,如果这些变量可以通过函数轻松设定的话那也问题不大,可以通常事情没有那么简单。比如最近我就遇到了类的私有变量需要通过另一个进程调用来设定,如果那么麻烦,就有违我们所谓“单元”测试的初衷了。那怎么办呢?怎么样在完全不改变源代码的情况下轻松设定私有变量的值呢?经过各种试探,查询,并亲身实践,得出以下方法,教您一秒钟private变public,而且源代码完全不需要改动: 阅读全文

为什么不用MD5

2012-01-01 19:50 by xiaozha007, 870 阅读, 1 推荐, 收藏,
摘要:去年(2011)年底一大批网站的账户密码被泄露了,不知道今年这场海啸会不会依然继续,先不讨论各网站的数据库安全问题(俺不太懂),就“为什么不用MD5”问题发表一点意见。 为什么不用MD5??——这大概是我听到的关于这波账户密码泄露最多的抱怨了。那为什么不用MD5呢?我的答案是:相比直接存密码明文,用MD5不见得有多高级。 如果通过某种手段获取到了大量的“账户+密码MD5”的数据,那可以通过以下方法计算出这其中大部分的“账户+密码”数据: 1.假设世界上没有多项式时间的anti-MD5算法 那就穷举呗,从csdn泄露出来的密码可以看到,即便是程序员们也不见得会把密码设置得很复杂,1... 阅读全文