2
私は関数の戻り値をテストしています。どちらが好ましい方法ですか?テストを実行すると、より説明的であるとき、私は今、テストはassert
文およびエラー・メッセージを必要としないため、 アサート/反論なしのExUnit、パターンマッチングのみに依存していますか?
test "extra verbose, using assert" do
{:error, reason} = MyModule.my_fun
assert reason == :nope
end
test "using pattern matching only" do
{:error, :nope} = MyModule.my_fun
end
は、私が最初のものが好きです。 Otoh、
MatchError
の行番号でも十分です。
試合に主張使用する主な欠点は、あなたがテスト中に右の比較は – Stuart
結果対左取得することはできませんされてはアサート 'です何か?パターンが一致すると、基本的にタプル '{:error、:nope}'が真実であると主張します。パターンが一致しない場合、まだ 'MatchError'があります。 – carp
@carp nopeでは、「MatchError」はありません。 'assert'は' = '特別に扱います。私はちょうど今の答えにサンプルのテスト失敗の出力を追加しました。 – Dogbert