相关疑难解决方法(0)

如何测试私有函数或具有私有方法,字段或内部类的类?

如何对具有内部私有方法,字段或嵌套类的类进行单元测试(使用xUnit)?或者通过内部链接(static在C/C++中)或在私有(匿名)命名空间中使其成为私有的函数?

为了能够运行测试而更改方法或函数的访问修饰符似乎很糟糕.

java tdd unit-testing

2593
推荐指数
36
解决办法
82万
查看次数

何时在单元测试中绕过封装是否合适?

我最近开始意识到powermock的Whitebox功能.(总之,它允许您直接测试私有方法或直接从单元测试修改私有成员 - 同时保持私有!)

我知道除了可见方法之外,还有一些思想框架在单元测试之后不屑一顾,但是有时它只是想要一个简单的测试来确保深层辅助方法正在做它应该做的事情......没有经历可能是巨大的开销来准备父方法过滤到你的方法所需的参数和模拟......然后你只需要做魔法来提取内部方法的结果.简而言之,有时测试这些内部方法需要最复杂且难以遵循的单元测试.(而且,我们公司的政策是100%的单位测试覆盖率.这些方法必须经过测试!)

我知道一种方法更改方法访问器以允许单元测试(例如,从更改privateprotected,但powermock Whitebox允许直接测试而不更改源代码.

不过,妈妈总是说,"只因为你可以,并不意味着你应该这样做."

是否适合测试这样的内部方法?如果是这样,我应该使用的经验法则是什么?

testing junit unit-testing powermock white-box

7
推荐指数
1
解决办法
724
查看次数

标签 统计

unit-testing ×2

java ×1

junit ×1

powermock ×1

tdd ×1

testing ×1

white-box ×1