My TESTは、スレッドを1秒遅らせるために、1000秒をミリ秒単位で持つSimpleTimerのインスタンスを作成します。スレッドに関する問題。スレッドを利用するタイマーをテストしようとしていて、ループ内でスタックしているようです。
@Test
public void testSimpleTimerAsThread() throws InterruptedException
{
SimpleTimer st = new SimpleTimer(1000);
st.start();
Thread.sleep(250);
for(int x = 0; x<5; x++)
{
assertEquals(x, st.getRound());
Thread.sleep(1000);
}
}
マイMETHOD
timeChanged()だけのラウンド数を更新し、すべての観察者が自分の時間を更新するために呼び出します。
public void start()
{
for(int r = 0; r<5; r++)
{
try
{
timeChanged();
Thread.sleep(1000);
}
catch (InterruptedException e)
{
}
}
}
SimpleTimerはスレッドを拡張し、このコードを実際に混乱させないインターフェイスを実装します。
私はこれを実行すると、私はそれが0を期待したが5はそうインクリメント決してxとラウンドが他の部分と同じスレッドで5
最初のassertが等しい場合はx = 0とround = 5なので、assertは失敗します。 – Pat
round = 5 timeChanged(){round + 1} – Pat