2016-05-18 8 views
-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();  
    } 
} 

答えて

0

。あなたはしかし、今、私が検証のために_「UnfinishedVerificationException」_、_「不足しているメソッド呼び出し(モックを取得しています示唆したよう

verify(login, times(1)).register();

verify(login, never()).register();

+0

を変更することで、私がやったことを確認することができます) "_。しかし、ファイル全体ではなく、それを自分で実行すれば問題はありません。 – Eddie94

関連する問題