|
1
1
这不是理由。如果您使用依赖项并希望能够正确地测试它,那么应该使用依赖项注入。这并不意味着不能为普通用户提供默认实现。 提供构造函数重载。我不知道你为什么认为这是“低效的”。 例子:
|
|
|
2
1
第一件事: 什么 你在测试吗?您的方法,还是REST服务本身? 既然你说 “我们无法对HttpLog类进行单元测试” ,我猜你是想考你的课。 因此,你应该测试它 没有 REST服务(这是一个外部依赖项)。REST客户机应该作为依赖项注入,这样就可以很容易地对其进行模拟。
这不是跳过依赖项注入的有效参数。 注意:我从你的陈述中推断,你知道如何实现依赖注入,你只是选择了不实现。我将省略依赖注入的一个实际例子,所以这个答案可以集中在核心问题上:您决定不使用依赖注入。
这违背了测试的意义。您正在为测试和(实际)运行时创建不同的代码路径,这意味着测试不再(完全)测试运行时代码的执行。 目前,您的构造函数只实例化rest客户机,所以您没有做出太多让步。但如果构造器做的不止这些,同样的情况就不适用了。其次,如果测试的构造函数与运行时实际使用的构造函数不同,则无法检测任何回归。
你的第二个建议直接证明你愿意 (正在努力) 注入依赖项 。您只是试图通过一个可公开设置的属性而不是构造函数参数来注入它。
正确的说法是,使用可公开设置的属性不是一个好的决定,因为它会打开其他问题的大门。
因此,答案是 使用依赖注入 . |
|
|
wavesinaroom · 断言结构向量长度 1 年前 |
|
|
Tim Kirkwood · 比较空数据帧 1 年前 |
|
Kamran Khan · 使用单元测试ASP。NET核心 2 年前 |
|
|
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 2 年前 |
|
|
Ricky Mo · 角度测试如何模拟导入的const 2 年前 |
|
|
Natty · Visual Studio中缺少“代码覆盖率结果” 2 年前 |