システムを既知の初期状態、つまりユーザーも注文もない状態に「リセット」する何らかの方法を見つける必要があります。
また、システムの状態を監視する方法を見つける必要があります。この方法は、実際には破壊的である可能性があります。つまり、システムの状態を変更したり、損傷したりする可能性があります。あなたの場合、メソッドは、そのような状況でCreateUser
戻ることが知られているため、ユーザーが既に存在するかどうかを確認するためのオブザーバーとして使用できます。-1
テスト ケースの 1 つが次のようになります。
reset (); // Each test case should start with reset
assertNotEquals (-1, CreateUser ("foo", "bar")); // This should work fine
assertEquals (-1, CreateUser ("foo", "zoo")); // Make sure user "foo" does exist
assertNotEquals (-1, SubmitOrder ("foo", "bar", "apple", 1)); // Make sure user can pass authentication
assertEquals (-1, SubmitOrder ("foo", "zoo", "apple", 1)); // Make sure password is actually checked
上記のテスト ケースではCreateUser
、指定された名前とパスワードでユーザーを実際に作成し、同じ名前で 2 人のユーザーを作成できないことを確認します。
別のテスト ケースを次に示します。
reset ();
CreateUser ("foo", "bar");
orderID = SubmitOrder ("foo", "bar", "apple", 1); // Submit order
assertNotEquals (-1, CancelOrder (orderID)); // Make sure order was really created
assertEquals (-1, CancelOrder (orderID)); // Make sure order was cancelled
等々。当然のことながら、データベースに直接クエリを実行するなど、システムの状態を観察するためのより簡単な方法を見つけたほうがよいでしょう。