假设:
void someMethod(Context context, int a){
if(context==null || a == 0){
return;
}
//some code here
}
如果它没有返回任何东西,是否有可能以某种方式测试它是否已在此 if 语句上停止? 我的意思是,我想放置某种断言来检查“好的,上下文为空,所以它在这次返回时停止”。
当然,这个问题与该类是无效的有关,我为什么要测试这种方法可能会有疑问,但我想听听一些可能性。
最佳答案
如果一个方法没有返回值,你可以测试的是:
- 状态变化:您调用
someMethod
或context
的实例是否有预期的(或意外的)状态变化,或一些其他可能的全局状态恰好在方法上发生了变化。 - 异常:如果
context
为null
,并且您没有返回此处,您可能会得到一个NullPointerException
或其他类型的异常随后。但是你真的不需要明确地检查这一点,因为如果发生你不期望的事情,JUnit 测试就会失败(你只需要确保你不会在测试中意外吞下那个异常)。
最终,这就是您应该测试的内容:测试方法的作用(状态更改、抛出的异常、返回值(如果有)等),不 em> 它是如何做到的(它是在这一行还是那一行返回)。
关于java - 返回后用结果进行单元测试断言;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782204/