1
データベースのデータを検証し、それに応じてアサートするマルチスレッドコードを作成しました。しかし、アサーションはこの環境では機能しません。スレッドコード内のアサーションはテストケースに失敗しません
スレッド
Runnable r = new WorkerThread(subasscociation);
new Thread(r).start();
new Thread(r).start();
スレッド開始関数のコードが
public class WorkerThread implements Runnable {
ArrayList<Association> alInsertedAssociations;
public WorkerThread(ArrayList<Association> alInsertedAssociations) {
this.alInsertedAssociations = alInsertedAssociations;
}
public void run() {
SecondLevelVerification slv = new SecondLevelVerification();
slv.verify(alInsertedAssociations,"add", false);
}
}
public void verify(...)
{
//Code to check database
org.testng.Assert.assertNotEquals(label, 0);
}
を主張する。しかし、コード、すなわちを動作するようには思えない機能であるを作成するためのコードデータベースにそのエントリがない場合は正しくアサートされません。
マルチスレッド部品とは何ですか?テストしているコードが見えない場合は、テストが失敗している理由を説明することはできません。 – byxor
マルチスレッド部分は検証機能です。この関数は、arraylistから読み込み、エントリがデータベースで利用可能かどうかをチェックします。私は配列リストを分割してスレッドを作成しています。 –
デバッガを試しましたか? –