内部功能的单元代码测试
Posted
技术标签:
【中文标题】内部功能的单元代码测试【英文标题】:Unit Code testing of internal functions 【发布时间】:2016-01-28 09:38:05 【问题描述】:我是一个测试新手,所以我在测试某些代码部分的内部功能时磕磕绊绊。如何仅测试具有不同输入的 privateParseAndCheck 和/或 privateFurtherProcessing 功能,但我不希望它作为公共功能?
-(BOOL) publicFunction()
//some stuff with network
NSError* error;
NSData* data = load(&error);
//now I got data and parse and check
BOOL result = privateParseAndCheck(data, error, ...);
if( result )
privateFurtherProcessing();
return result;
重写代码是解决方案吗?我也对 Xcode Server 上的提示/解决方案的一些经验感兴趣。
【问题讨论】:
【参考方案1】:如果有一种直接的方法来测试您只需要从公共方法中获得的内容,请这样做。
如果没有,您可以选择:您可以只将方法公开给测试代码。 这是一种常见的做法,但我不推荐这样做。它会抑制其他选项......
或者,完全公开该方法。如果这让您感到不舒服,可能有一个类试图退出。提取该类(您要测试的方法以及与它们一起使用的任何其他有意义的方法。)您现在可以对其进行测试类。
当很难提出不同的条件(例如不同的错误)时,这尤其有用。提取,很简单。
延伸阅读:Testability, Information Hiding, and the Class Trying to Get Out
【讨论】:
以上是关于内部功能的单元代码测试的主要内容,如果未能解决你的问题,请参考以下文章