[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 反编译生成的不同版本程序集。来证明我们上述做法是否正确。证明部分这里就不做展示了。
测试跟实现代码放在一起,我们就可以测试 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 反编译生成的不同版本程序集。来证明我们上述做法是否正确。证明部分这里就不做展示了。
相关文章推荐
- 把单元测试代码跟项目代码放在一个工程中
- 一个android工程代码多个差异化项目管理方法探讨
- 计算一个项目工程中所有包下面的代码行数
- 一个android工程代码多个差异化项目管理方法探讨
- 怎么快速熟悉一个项目代码
- 部署一个已上线的项目报找不到类的错误,修改工程CLASS生成的路径
- 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
- Python计算一个项目中含有的代码行数
- 一段代码既说明printf的入栈顺序是从右想做的,又说明inet_ntoa返回值是放在一个静态区域的,连续执行会覆盖
- 发现一个问题,十分蛋疼。 我们项目是由N个工程组成的,外围工程是web工程,内部的工程打包成jar,放入外围工程的WEB-INF/lib 内部的工程用到了spring的注解,例如@Service、
- ExtJS做的一个信息管理界面,项目代码
- PHP开发的一个小小项目,记录下实现思路(附上实现功能的示例代码)(二)
- 【转】如何在github上fork一个项目来贡献代码以及同步原作者的修改 -- 不错
- 一个dos下传串口的c代码加一点项目感想
- 如果你参与到一个项目中,发现他们使用 Tab 来缩进代码,但是你喜欢空格,你会怎么做?
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- eclipse如何把多个项目放在一个文件夹下-eclipse中对项目进行分类管理
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- Android Studio多工程引用同一个library项目配置的解决方法