0

メソッドがdoctorQueueあります: データ型 (java.util.Date による)、時間と ID (文字列) の 3 つのパラメーターを取得します。

戻り値はvoidであり、同時にキューが存在する場合は例外を返します。

Junit を使用して、次のメソッドを作成しました。

public void checkQueueDoctor(){
Date date = new Date (2012,4,25);
Time time = new Time (13, 0, 0);
assertTrue(doctorQueue("83849829", date, time));
..... // and so on
}

それは私に次の問題を与えます: The method assertTrue(boolean) in the type Assert is not applicable for the arguments (void).

もちろん理解できましたが、戻り値が無効であることを確認するにはどうすればよいですか?

4

5 に答える 5

1

JUnit 4 を使用している場合は、予期される例外を確認できます。次に例を示します。

@Test(expected = Exception.class)
public void checkQueueDoctor() throws Exception {
   Date date = new Date (2012,4,25);
   Time time = new Time (13, 0, 0);
   doctorQueue("83849829", date, time);
}

このリンクで見ることができます

于 2012-04-22T15:58:19.710 に答える
1

void メソッドによって例外がスローされないことをテストする場合、一般的なパターンは次のとおりです。

try {
  doctorQueue("83849829", date, time);
  // if we make it to this line, success!
} catch (Exception e) {
  fail("queue adding threw an exception");
}

メソッドが例外をスローすることを確認したい別の状況がある場合は、fail 呼び出しを他のブロックに移動するだけです。

try {
  doctorQueue(alreadyPresentElement, date, time);
  fail("expected an exception but didn't get one!");      
} catch (Exception e) {
  // we expected an exception and got it! Success!
}

(どちらの場合も、単に よりも具体的な例外をキャッチする方がおそらく良いでしょうException。)

于 2012-04-22T15:44:20.120 に答える
1
public void checkQueueDoctor(){
  Date date = new Date (2012,4,25);
  Time time = new Time (13, 0, 0);
  doctorQueue("83849829", date, time);
   ..... // and so on
}

十分なものです。例外がスローされると、テストは自動的に失敗します。

于 2012-04-22T15:52:55.907 に答える
0

医師を追加した後、キューが変更されたことを確認します。

于 2012-04-22T15:40:48.850 に答える
0

戻り値が無効であることを確認するにはどうすればよいですか?

できません。たとえば、不正な引数などをスローする必要があるときに例外をスローするかどうかのみを確認でき、メソッドを介して通知されAssert.fail()
ます。できることは、このメソッドの副作用をチェックし、それを返すtruefalse、呼び出しアサート

于 2012-04-22T15:42:08.303 に答える