0
私はphoenix/elixirアプリケーションをテストしています。次のようなものを使用しています。フェニックステストでのアサートパターンの一致
player = insert(:player)
assert [%Player{id: x}] = Players.site_players(player.site_id)
assert x == player.id
これは、Player.site_players/1が配列を返し、その配列にプレーヤが含まれていることを保証します。私はこれがもっと簡潔にできるように感じる。助言がありますか?
それを乾燥させる最良の方法は、これらすべてのテストを取り除くことであろう。あなたは 'DB'機能と' Ecto'機能をテストしています。意味がない。 _your_アプリケーションのテストでは、独自のテストを持つ 'Ecto'ではなく、あなたのapplication_をテストする必要があります。 – mudasobwa
私のコード(この場合はsite_playersメソッド)がEctoに適切な処理を依頼していることをテストしています。これは、説明のために選んだ、私がクリーンアップしたいパターンに遭遇する最も簡単な場所です。他の場所では、より複雑なコードに対して実行されます。 – biagidp
'defmodule Players、def site_players(id)、do:%Player {id:id}'の 'Player'の実装は驚くことにこのテストに合格しました_。基本的に**実装の詳細をテストすることを意味します**。 – mudasobwa