-1
こんにちは私のtestRegLogin()
テストのために"Wanted but not invoked"
エラーが発生していますが、残りのテストはすべて合格です。 私のテストは以下の通りです。このコードはLogin.java
コードをテストして、JTextField
に入力された詳細をチェックし、データベースに対してチェックします。正しいログインが発生すると、Controller
クラスが呼び出されます。 Mockitoは、あなたが一度に呼び出すことlogin.register()
を期待したがMockitoは、それが呼ばれなかったことを教えてくれているあなたのtestRegLogin()
方法であなたを教えては何募集していますが、呼び出されていないMockito
import org.junit.After;
import org.junit.Test;
import org.mockito.Mockito;
import com.jogamp.newt.event.*;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import javax.swing.*;
public class TestLoginJunit {
Login log = new Login();
String username = "edwardc5";
String password = "case4";
Robot r;
JButton[] buttons = log.sendButton();
//correct login for program expected outcome = new controller invoked
@Test
public void testCorrectLogin() throws AWTException {
r=new Robot();
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection stringSelection = new StringSelection(username);
clipboard.setContents(stringSelection, stringSelection);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
r.keyPress(KeyEvent.VK_TAB);
r.keyRelease(KeyEvent.VK_TAB);
r.delay(500);
stringSelection= new StringSelection(password);
clipboard.setContents(stringSelection, stringSelection);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
r.delay(500);
buttons[0].doClick();
r.delay(100);
Controller controller = Mockito.spy(new Controller());
verify(controller, times(1));
}
//testing wrong username outcome= error displayed and controller not invoked
@Test
public void testWrongUsernameLogin() throws AWTException {
Login login = mock(Login.class);
r=new Robot();
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection stringSelection = new StringSelection("ed");
clipboard.setContents(stringSelection, stringSelection);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
r.keyPress(KeyEvent.VK_TAB);
r.keyRelease(KeyEvent.VK_TAB);
r.delay(500);
stringSelection= new StringSelection(password);
clipboard.setContents(stringSelection, stringSelection);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
r.delay(500);
buttons[0].doClick();
r.delay(100);
verify(login, never()).invokeController();
}
//testing cancel button outcome= window closes
@Test
public void testCancelLogin() throws AWTException {
Login login = mock(Login.class);
r=new Robot();
r.delay(500);
buttons[2].doClick();
r.delay(100);
verify(login, never()).invokeController();
}
//testing registration button outcome = register is invoked
@Test
public void testRegLogin() throws AWTException {
Login login = mock(Login.class);
r=new Robot();
buttons[1].doClick();
r.delay(500);
verify(login, times(1)).register();
}
}
を変更することで、私がやったことを確認することができます) "_。しかし、ファイル全体ではなく、それを自分で実行すれば問題はありません。 – Eddie94