返回后单元测试断言结果;

时间:2016-11-24 09:17:10

标签: java android junit

让我们假设:

void someMethod(Context context, int a){
if(context==null || a == 0){
return;
}
 //some code here
}

是否有可能以某种方式测试它是否已在此if语句上停止,如果它没有返回任何内容? 我的意思是,我想把某种断言检查“okey,context is null,所以它在这次返回时停止了。”

当然,问题与课程无效有关,为什么我想测试这种方法可能有问题,但我想听听一些可能性。

1 个答案:

答案 0 :(得分:4)

如果某个方法没有返回值,那么您可以测试的是:

  • 状态更改:是否存在您调用someMethodcontext的实例的预期(或意外)状态更改,或者可能恰好在其中更改的某个其他全局状态方法
  • 例外情况:如果contextnull,而您未返回此处,则可能会随后获得NullPointerException或其他类型的例外情况。但是您并不需要明确地检查这一点,因为如果发生了一个您不期望的JUnit测试将会失败(您只需要确保在测试中不小心吞下该异常)。 / LI>

最后,这就是你应该测试的内容:测试方法做什么(状态更改,抛出异常,返回值(如果有的话)等),它是如何做的(它是在这一行还是那行返回)。