2016-11-16 8 views
0

enter image description here機能コードカバレッジなし100%

以下はどのように修正する必要がありますか?私のここでの機能は0%カバレッジとしてマークされています。後続のブレースは失敗し、0%のカバレッジがあります。

私がelseに追加した場合は、return nullが失敗します(これは失敗しないはずです)。私がヌルを保ち、それをすべて1行に入れると、次のようになります。

if($this->save()){ return true; } return null; 

それから、それは合格です。私はテストには新しく、ここで間違っていることを確かめていないのですか?

enter image description here

+0

おそらく、 'return null;'には決して達しませんでした! – JustOnUnderMillions

+0

nullの代わりにfalseを返すとどうなりますか? if($ this-> save()){trueを返します。 }偽を返します。 –

+0

本当に言いましたが、私が見つけたのは、この 'カバレッジ機能はXdebug拡張機能によって提供されていたため、PHPUnit自体ではなく、xdebugから情報を得ています。何も私は本当に泣くのに役立ちません。 – JustOnUnderMillions

答えて

2

100%のコードカバレッジを使用すると、各機能の一つ一つの成果をテストしていることを意味します。あなたのreturn null行は、あなたのテストがこの行に分岐しないため、カバーされていないとマークされています。

これを表記するには、$this->save()falseを返すテストが必要で、メソッドがnullのように返されることをテストする必要があります。

場合によっては、100%のコードカバレッジを取得することが不可能であるか、非常にばかげた/奇妙な見た目のテストにつながることがあります。このような場合、特定の行のテストを無視することができます。

編集:あなたはtrueまたはfalse、代わりのtruenullを返すようにコードを書き換える場合は、これにあなたの方法を書き換えることができます:このコードは100%のコードカバレッジを持っている必要があり

$expression = new Expression('SYSDATE'); 
$this->last_login = $expression; 
return $this->save(); 

関連する問題