C#通过PrivateObject测试包含返回参数的函数

本文介绍了如何在C#中利用PrivateObject进行单元测试,特别是针对包含返回参数的私有函数。通过创建delegate并结合PrivateObject.Invoke方法,可以有效地测试这类函数。文中以一个超过固定长度文件写数据的场景为例,说明如何获取数据长度和起始位置。
摘要由CSDN通过智能技术生成

        写代码的一个好习惯是做好单元测试,不仅测试public类及函数,有时候还需要测试private的类及函数,通过.Net单元测试自带的PrivateObject类可以实现,方法很简单,测试函数通过PrivateObject.Invoke,测试属性或变量通过PrivateObject.SetFieldOrProperty即可。但是,如果测试包含返回参数的函数就没法直接通过PrivateObject.Invoke函数,而是通过声明delegate的方式来实现。
        例如,需要向某个固定长度的文件写数据,超过限定长度后循环写数据,写完数据后需要获得当前数据长度,起始数据所在位置,除Write函数自身返回数据长度,还需要通过参数返回起始数据所在位置,请看参考代码.

        delegate int WriteDeletate(byte[] data, ref int offset)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值