如果某个方法不返回任何内容,则为以下之一
- 必要的 -您要让对象对自己做某事..例如,更改状态(不希望任何确认..它假定将要完成)
- 信息性 -只是通知某人某件事(没有预期的动作或响应)。
命令式方法-您可以验证任务是否实际执行。验证状态更改是否确实发生。例如
void DeductFromBalance( dAmount )
可以通过验证此消息后的余额是否确实小于初始值dAmount来进行测试
信息方法-作为对象公共接口的成员很少,因此通常不进行单元测试。但是,如果必须,您可以验证是否对通知进行了处理。例如
void onAccountDebit( dAmount ) // emails account holder with info
可以通过验证是否已发送电子邮件进行测试
发布有关您的实际方法的更多详细信息,人们将能够更好地回答。
更新 :您的方法正在做两件事。实际上,我将其分为两个可以独立测试的方法。
string[] ExamineLogFileForX( string sFileName );void InsertStringsIntoDatabase( string[] );
通过为第一种方法提供虚拟文件和期望的字符串,可以轻松地验证String
[]。第二个有点棘手..您可以使用Mock(在模拟框架上使用Google(模拟)框架上的Google或搜索stackoverflow)来模拟数据库,也可以命中实际的数据库并验证字符串是否插入正确的位置。检查此主题以获取一些好书…如果您处于紧要关头,我建议进行实用单元测试。
在代码中,它将像
InsertStringsIntoDatabase( ExamineLogFileForX( "c:OMG.log" ) );



