【发布时间】:2016-01-14 16:52:27
【问题描述】:
我正在对一些检查当前操作系统版本的代码进行单元测试,因为 dll 中的方法仅适用于 Windows 7。为此,使用以下方法
if (Environment.OSVersion.Version >= new Version("6.2"))
//Windows 8
else
//Windows 7
是否有一种简单的方法来对此进行单元测试或者是否需要更改代码(包装和注入环境?)
【问题讨论】:
-
显然有很多关于此主题的现有问题,例如stackoverflow.com/questions/6499871/… - 请务必解释为什么现有建议对您不起作用。
-
@AlexeiLevenkov 您链接的答案没有提到 MS Fakes - 大多数答案只是说要包装,这个问题明确拒绝。此外,它比普通的假货要复杂一些,因为您必须编辑
mscorlib.fakes配置文件,所以我认为值得回答。就个人而言,我会将支票包装起来,这样我就不必使用 Fakes,但它始终是一个强大的了解工具。 -
@RB。说 OP 根本没有搜索是不礼貌的,所以我试着做得更好一些......像bing.com/search?q=C%23+unittest+static+method 这样的一些基本搜索带来了几个 SO 答案,包括 stackoverflow.com/questions/10632975/… 指的是 Moles/Fakes 作为一个选项以及几个注射选项......(实际上我什至不确定我想对这些 cmets 说什么......显然 21 次观看意味着无论如何都没有多少人关心这个帖子 :))
标签: c# unit-testing