종속성이 데이터베이스 클래스에있는 클래스 인 UserAdmin을 테스트해야합니다. UserAdmin 클래스를 테스트하기 위해 데이터베이스 클래스를 조롱했습니다. 데이터베이스 클래스에는 사용자가 관리자인지 아닌지를 결정하는 isAdmin() 메소드가 있습니다. UserAdmin 클래스에는 removeUser()라는 메서드가 있으며이 오류에 대해이 오류가 발생합니다. 사용자가 관리자이면 removeUser() 메서드가 사용자를 제거 할 수 없습니다. 다음은이 오류가 나타나는 코드입니다. 나는 위의 assertequals을 넣어Jmockit : 오류 1에서 호출이 누락되었습니다
는@Test
//testing remove user method of UserAdmin - remove Admin
public void testremoveUserAdmin() throws SQLException{
new Expectations() {{
dBConnection.isAdmin("admin");
times=1;
result = true;
}};
assertEquals(false,userAdmin.removeUser("admin"));
, 그것은 누락 된 호출 오류를 제공하지만이 주장의 진실과 거짓 교체 할 때, 그것은 사실이지만 거짓 예상했다. 왜 내가이 오류가 발생하는지 잘 모르겠습니다. isAdmin()과 같은 비슷한 메소드를 실행하는 비슷한 코드가 잘 동작합니다. 도와주세요
은 어떻게 "dBConnection"필드를 선언입니까? '@ Mocked' 또는 @ @ Injectable? 두 번째 경우,이 동일한 조롱 된 인스턴스는'UserAdmin # removeUser' 메소드 내에서 사용 된 인스턴스 여야합니다. –
@Mocked를 사용했습니다 \t DBConnection dBConnection; – StevieG
위의 assertequals를 넣을 때 호출 오류가 누락되지만 assertion에서 false를 true로 바꾸면 예상 된 것이지만 false입니다. – StevieG