单元测试,构建配置和内部

乔尔格

我正在将我的UnitTests编写在与被测项目不同的项目中。为了能够测试Internal类/成员[InternalsVisibleTo],我在被测项目中使用Attribute。

#if "BUILD_CONFIGURATION"
[assembly: InternalsVisibleTo("Tests_ProjectUnderTest")]
#endif

出现以下问题:

我应该使用哪种构建配置进行单元测试?Internal不是应该在我发布的代码可见的,所以#if RELEASE是不可能的。另一方面,#if DEBUG并没有真正测试我想要发布的内容。您应该有与众不同的UNIT_TEST-Configuration吗?或您将如何做?

蒂姆·朗(Tim Long)

我通常不将[InternalsVisibleTo()]属性设置为条件,因为内部仅对命名程序集可见。您可以通过对程序集进行强命名来增强其安全性,因此没有人可以“伪造”您的单元测试程序集。但是,如果您对此感到担心,则可能无论如何都应该混淆您的程序集,否则逆向工程就变得微不足道了。我通常认为私有/内部是意图的陈述,而不是安全特征,因为始终可以通过反射来规避它。

我通常对调试配置进行单元测试,因为我想在单元测试结果中查看诊断输出。这可能取决于您使用的运行程序,我使用的是ReSharper运行程序,它将调试/跟踪输出捕获到单元测试窗口中。由于在我的发行版本中降低了跟踪冗长性,因此我更喜欢对调试版本进行单元测试。不过,我认为这是一个判断电话。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章