我有以下邏輯:如何標記Devel :: Cover無法匹配的// //條件?
sub test {
my ($x, $y) = @_;
die unless defined $x || defined $y;
# uncoverable condition false
return $x // $y;
}
test(1, 2 );
test(1, undef);
test(undef, 2 );
test(undef, undef);
的return
聲明將永遠不會被覆蓋的地方$x
和$y
都是不確定的狀態。因此覆蓋報告指出,由於病情發現:
% | coverage | condition
------------------------------
67 | A | B | dec | $x // $y
|-------------|
===> | 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | X | 1 |
有我的方式來標記條件爲uncoverable
?在線以上添加uncoverable condition false
會修復覆蓋率摘要,但是當我查看細節時,條件覆蓋率仍然爲67%。
Devel :: Cover處理//
運算符嗎?
在另一方面,如果我改變die
行等效:
die "died" if !defined $x && !defined $y;
該行也成爲67%的覆蓋。
% | coverage | condition
------------------------------
67 | A | B | dec | defined $x or defined $y
|-------------|
| 0 | 0 | 0 |
===> | 0 | 1 | 1 |
| 1 | X | 1 |
這可能是一個錯誤?
您運行的是什麼版本傑韋利::蓋的? –
我使用的版本是1.08(草莓Perl 5.18,如果有什麼區別的話) – stevenl