Hallo Ich bekomme einen "Wanted but not invoked"
Fehler für meine testRegLogin()
Test, aber der Rest meiner Tests sind alle vorbei. Meine Tests sind unten. Dieser Code testet einen Code Login.java
, der in einem JTextField
eingegebene Details überprüft und sie dann mit der Datenbank vergleicht. Wenn eine korrekte Anmeldung erfolgt, wird eine Klasse Controller
aufgerufen.Gesucht, aber nicht aufgerufen 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();
}
}
Ich tat, wie Sie aber jetzt schlug ich bin immer _ "UnfinishedVerificationException" _, _ "fehlende Methodenaufruf für überprüfen (Mock) "_. Es passiert jedoch, wenn ich es selbst und nicht die gesamte Datei ausführen. – Eddie94