6
私のコードでJOptionPane.showInputDialog
呼び出しを使用しています。 junitテストを実行すると、ウィンドウがポップアップします。 ポップアップを抑制する方法はありますか? Woldを助けて助けてくれますか? これを手伝ってください。junitテストでJOptionPane.showInputDialogを抑制する
私のコードでJOptionPane.showInputDialog
呼び出しを使用しています。 junitテストを実行すると、ウィンドウがポップアップします。 ポップアップを抑制する方法はありますか? Woldを助けて助けてくれますか? これを手伝ってください。junitテストでJOptionPane.showInputDialogを抑制する
私は知っています - この質問は古代です。しかし、たぶん誰かが同じ問題を抱えているかもしれません...
覚えておいてください:それはあなたのコードですね。だから、あなたは簡単にこれを行う
public boolean myMethod() {
String value = "NOTHING";
if(this.someCondition) {
value = getValueFromDialog();
}
return "NOTHING".equals(value);
}
protected getValueFromDialog() {
return JOptionPane.showInputDialog(...)
}
に
public boolean myMethod() {
String value = "NOTHING";
if(this.someCondition) {
value = JOptionPane.showInputDialog(...);
}
return "NOTHING".equals(value);
}
からリファクタリングすることができ、あなたはのJOptionPaneの実際の呼び出しを離れモックテストを書くことができます(例Mockito構文を使用しています)
@Test
public void test_myMethod() {
MyClass toTest = mock(MyClass.class);
//Call real method we want to test
when(toTest.myMethod()).doCallRealMethod();
//Mock away JOptionPane
when(toTest.getValueFromDialog()).thenReturn("HELLO JUNIT");
//Perform actual test code
assertFalse(toTest.myMethod());
}
すべてdone - JOptionPane.showInputDialog()の結果として起こるかもしれない面白いものをすべてシミュレートしたテストを追加する(nullを返す、予期しない値を返す...) gテストケースと異なる値
when(toTest.getValueFromDialog()).thenReturn(...);