您的位置:首页 > 编程语言

[Enterprise Library]把单元测试代码跟项目代码放在一个工程中[转]

2005-08-19 15:28 387 查看
在阅读 Enterprise Library 代码的时候,我们可以看到 Enterprise Library 的测试代码和实现功能代码是在一个项目中的。这么做的好处在于:

测试跟实现代码放在一起,我们就可以测试 internal 的方法函数。
参见对 internal 的定义:
internal 关键字是类型和类型成员的访问修饰符。内部成员只有在同一程序集中的文件内才是可访问的。
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vclrfInternalPG.asp

测试代码和具体实现代码放在一个项目中,这时候我们就需要区分测试版和运行版,就类似于编译工程有Debug版和Release版一样。

下面我们简单的看看实现自定义区分不同的编译版本。

首先我们仍然来看 Enterprise Library 的代码,在它的项目中,我们可以看到,编译一个项目的时候,有六个编译选项,而不是以前默认只有的两个编译选项,如下图:

#if UNIT_TESTS
using System.Threading;
using NUnit.Framework;

namespace Microsoft.Practices.EnterpriseLibrary.Caching.Tests

#endif
[/code]

这样,就可以实现如果我们采用的是 DebugUnitTests方式编译,就可以把测试代码编译到组件中,如果我们需要发布的时候,则不需要编译这部分代码。
注意:项目中别忘了引用nunit.framework.dll

我们可以使用 ilDasm 反编译生成的不同版本程序集。来证明我们上述做法是否正确。证明部分这里就不做展示了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐