但是简单的值类型, 例如字符串, List, Dictionary等还是可以的.
在构造函数/字段声明里调用静态方法
静态方法不可以被mock, 也不能被注入....构造函数里出现非赋值代码
存在另外一个初始化函数 (也就是说构造函数走了完, 但是对象并没有被完全初始化)
如何解决问题?
不要在构造函数里创建依赖项, 应该注入它们....然后在构造函数里把它们赋值给类的私有变量....为了易于测试, 针对这两类构造, 有下列规则:
可注入的对象可以在构造函数请求(注入)其它的可以注入对象, 但是不能在构造函数请求可new的对象....反过来, 可new的对象可以在构造函数请求其它的可new对象, 但是不能在构造函数请求可注入的对象.
例子
第一个例子
?