JDialogオブジェクトのいくつかのメソッドを単体テストしようとすると、NullPointerExceptionが発生します。私は、ダイアログの親のモックバージョンと同様に、静的メソッドを呼び出すことに加えて、(使用される別のクラスを初期化する必要があり、次のようにコードは次のとおりです。Powermock、super()JDialogを呼び出すときにnullポイントを受け取るJDialog
のために呼び出されるコードをダイアログを構築することはここにある:
StructureCompareDialog(IControlFrame controlFrame)
{
super((Frame) controlFrame, "title", true);
...
}
スーパーコンストラクタが、私は最終的にjava.awt.Window.addOwnerWindowでNullPointerError(Window.java:2525)を取得する呼び出されたときに」
void addOwnedWindow(WeakReference weakWindow) {
if (weakWindow != null) {
synchronized(ownedWindowList) { ***<<------ offending line***
// this if statement should really be an assert, but we don't
// have asserts...
if (!ownedWindowList.contains(weakWindow)) {
ownedWindowList.addElement(weakWindow);
}
}
}
}
私は静電気を混ぜて、毒素の渦巻きでguiを振り払いますが、私には選択肢がありません。私は、既存のコードでいくつかの単体テストを一緒に投げる命令を与えられました。何が間違っているのか分かりません。
ありがとうございました
あなたは今までこの作業を取得しましたか?もしそうなら、ソリューションを投稿しても構いませんか? – glenneroo
Starngeあなたは 'synchronized(ownedWindowList)'にヌルポインタを取得しています。 Window.javaで 'ownedWindowList'データメンバをチェックすると、それはインスタンス化されており、決してnullに再び割り当てられません。 このデータメンバーをnullにする可能性があることが不思議です。 このデータメンバーが(Reflectionを使用して)アクセスされ、nullに変更されている場合、コードをチェックインできますか?このデータメンバを手動で変更する必要があるが、確実に確認する必要がある場合は、可能な限り少なくしてください。 –
@glenneroo、私は自分のコードで新しい質問を作成するのではなく、ここに奨励金を入れるのは間違いだと思います。あなたがしていることのようないくつかの詳細を提供し、あなたが得る例外のトレースをスタックすることができますか? – SergGr