テストを制限する方法を理解しようとしているため、カバレッジレポーターはテストが行われたときにその機能のために、具体的にはと書かれています。カルマ、ジャスミン、イスタンブールを使用して、テスト対象の関数/メソッドを指定する方法
@coversアノテーションは、テストメソッドをテストしたい 方法(複数可)を指定するには、テストコードで使用することができます:
PHPUnit docから次の例では、私が達成しようとするどのようなかなり良いを示しています:
/**
* @covers BankAccount::getBalance
*/
public function testBalanceIsInitiallyZero()
{
$this->assertEquals(0, $this->ba->getBalance());
}
上記のテストが実行されます場合は、唯一の機能getBalance
をカバーとしてマークされ、どれも他のことになります。
JavaScriptテストの実際のコードサンプルがあります。このテストは、機能カバーとしてgetDateRange
、もgetDateRange
内部から呼び出された他の機能をマークします
it('Test get date range', function()
{
expect(dateService.getDateRange('2001-01-01', '2001-01-07')).toEqual(7);
});
:このテストでは、私はを取り除くためにしようと、不要な挙動を示しています。このような理由から、私のプロジェクトの実際のコードカバレッジは、おそらく報告されたコードカバレッジよりもずっと低いでしょう。
どのようにこの動作を停止できますか? Karma/Jasmine/Istanbulが私の望むやり方で動作するようにする方法はありますか、またはJavaScriptテスト用の別のフレームワークに切り替える必要はありますか?
実際の生産コードへの呼び出し回数を減らすために、依存関係注入とモックを使用することが考えられます。 – henrikmerlander
私はhenrikmerlanderに同意します。また、テストされたメソッドの中でモックの代わりに実際の関数呼び出しを間接的に使用している場合は、その関数もテストしています – ejosafat