0

私はいくつかのプロジェクトで単体テストを使い始めましたが、小さな問題があります。1つの方法をテストする必要があり、例としてアイデアが不足しています。これがあります。

    public class Clients
    {
      Public Assignment AssignClient(int? clientRef, int? productRef)
       //Assignment is an enum that has success,Failure,etc...
        {
         If(!checkClientAge(int clientRef)) Return Assignment.Tooyoung;
          If(!checkClientAvailability(int clientRef)) Return Assignment.NotAvailable;
         If(! checkProductavailability(int productRef)) Return Assignment.ProductNotAvailable;
        }
     }

クライアントクラスとをモックしましたAssignClientが、3つのブールメソッドをどうすればよいかわかりません。これらをモックする方法について何か考えがあるかどうかわかりませんか?

4

1 に答える 1

1

クラスをテストしている場合は、Clientsそれをモックするのではなく、実際のインスタンスが必要です。代わりに、使用する他のクラスをモックアウトして、既知の予測可能な結果を​​それらから返し、データベースアクセス、UIインタラクションなどの複雑さを排除できるようにします。

プライベートメソッドへの3つの呼び出しで外部から見えるフラグまたはプロパティが設定されていない限り、このAssignClientメソッドは単体テストの候補としては適していません。そうでない場合、測定または監視するものがなく、テストが成功したか失敗したかを判断できません。

于 2012-12-09T10:30:55.273 に答える