单元测试中设置被测试类接口的值
来源:互联网 发布:义乌淘宝打包员招聘 编辑:程序博客网 时间:2024/05/23 15:28
有类声明如下:
在单元测试中需要使用TestA.Test属性,并为其赋值。
因为ITest接口和TestA.Test属性都是私有的,为了在单元测试中使用它们,需要为其生成专用访问器。
然后声明一个类A继承并实现接口,最后实例化类A为TestA.Test属性赋值,并调用。
运行测试后,发现测试失败了,错误信息为:类型“ServiceRetrieveTest.TestATest+A”的对象无法转换为类型“PlatformClassLibrary.TestA+ITest”。错误发生在target.Test = newA();这个语句上,虽然类A继承了接口,但是ITest接口与他的专用访问器ITest_Accessor之间并不是简单继承关系,无法相互转化,导致测试失败。
研究后发现一个解决方法
解决方法很简单,就是将ITest接口声明为Pubic,这样在测试代码声明类A就可以直接继承这个接口。
再次运行测试,发现target.Test = new A();这个语句可顺利执行,测试成功。
但是,这个方法的缺点在于,接口ITest只是类TestA的内部使用的接口,现在却将其暴漏在外部,有些不理想。
2009-11-6更新
找到一个相对完美的解决方案。
可以将接口在命名空间下声明为internal,即声明为内部接口。同时在被测试的项目中添加System.Runtime.CompilerServices.InternalsVisibleTo标签,该标签表示该项目的内部成员可向某一项目公开,如[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ServiceTest")]
这样就可以在测试项目中使用用Internal声明的代码。
在测试代码时就可以继承ITest接口并实现。
注意继承时要同时继承ITest接口和他的专用访问器ITest_Accessor接口。
测试的类声明如下
然后用下面的代码进行测试
运行,测试成功通过。
- 单元测试中设置被测试类接口的值
- 单元测试、接口测试、功能测试 、的区别
- VS单元测试测试接口
- 单元测试、接口测试、web自动化测试的区别
- VS2005单元测试中测试无返回值的方法
- iOS单元测试之接口测试
- java单元测试之如何实现异步接口的测试案例
- RD单元测试和QA接口测试的区别
- Android单元测试(五):网络接口测试
- 单元测试-以itoo中测试本模块提供接口是否正确进行说明
- 讲一讲测试环境的设置对接口测试的重要性
- Jmeter接口测试设置
- 单元测试中测试用例的设计方法
- 在单元测试中如何测试私有的方法
- soapui的webservice接口测试中参数设置
- 关于Java中接口的测试
- 接口测试中注意的问题
- 接口测试中注意的问题
- 编辑距离算法-java
- JavaScript中的document.cookie的使用
- 关于fstream 存储类对象,大侠指点一下
- 单词查找树
- WF - 状态机工作流的workflow实例状态与业务实体状态的对应
- 单元测试中设置被测试类接口的值
- Fedora 10 Rar and Unrar
- DC设备上下文的举例描述
- QuickCSharp框架开发(6)------建立Windows Application项目
- Verilog面向综合的设计
- Linux串口编程
- (十一)十字街头 - 5
- Grails开发随笔系列(二)抛砖引玉,手机版界面解决方案
- applet和servlet