问题场景:
有一个方法类似于下面的状况:
...
if (condition1) {
...
}
else {
...
}
...
if (condition2) {
...
}
else {
...
}
...
那么你该写几个测试来覆盖这段代码呢?答案是四个。
如果你有三个条件呢?答案是八个。
那么更多呢?。。。
解决办法:
...
do_first_thing();
...
do_second_thing();
...
抽取出两个方法。然后针对每个抽取的方法来写测试。而对原来的那个方法,只需要写一个测试了。
有一个方法类似于下面的状况:
...
if (condition1) {
...
}
else {
...
}
...
if (condition2) {
...
}
else {
...
}
...
那么你该写几个测试来覆盖这段代码呢?答案是四个。
如果你有三个条件呢?答案是八个。
那么更多呢?。。。
解决办法:
...
do_first_thing();
...
do_second_thing();
...
抽取出两个方法。然后针对每个抽取的方法来写测试。而对原来的那个方法,只需要写一个测试了。