Netbeans 8.1, Junit 및 Mockito를 사용하여 프로젝트의 단위 테스트를 작성합니다. 여기JUnit Mockito 다른 클래스의 모의 메소드 오류
이 기능을 테스트 할 내 코드의 일부 조각입니다 :
public Map<String, String> getAllUsers() {
if (allUsers == null) {
if (session.checkACL2("DonateBookPrivilegeLevel") || session.checkACL2("ManageUserPrivilegeLevel")) {
Iterator<User> it = userFc.findAll().iterator();
System.out.println("PC::enum()");
allUsers = new HashMap<String, String>();
while (it.hasNext()) {
User item = it.next();
allUsers.put(item.getName(), item.getUserId().toString());
}
}
}
return allUsers;
}
내 테스트 클래스 : 당신이 볼 수 있듯이
package com.controller;
import com.entities.User;
import com.jsfc.util.JsfUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.faces.event.ActionEvent;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import org.mockito.Mock;
import org.mockito.Mockito;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class PersonalCenterControllerTest {
public PersonalCenterControllerTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@After
public void tearDown() {
}
/**
* Test of getAllUsers method, of class PersonalCenterController.
*/
@Test
public void testGetAllUsers() {
System.out.println("getAllUsers");
PersonalCenterController pcController = new PersonalCenterController();
SessionController session = Mockito.mock(SessionController.class);
when(session.checkACL2(anyString())).thenReturn(true).thenReturn(true);
Map<String,String> userMap = null;
userMap = pcController.getAllUsers();
}
}
, 나는 정의입니다 session.checkACL2()를 호출 다른 클래스에서, 나는
SessionController session = Mockito.mock(SessionController.class);
doReturn(true).when(session).checkACL2((String) anyObject());
를 해결하기 위해 Using Mockito to mock a class method inside another class를 사용하지만, 캘리포니아 줄을 때 NullPointerException
예요.
어떤 주니퍼 러너를 사용하고 있습니까? @RunWith (MockitoJUnitRunner.class) 또는 비슷한 것을 사용하여 수업에 주석을 추가 했습니까? 수입 명세서를 포함한 전체 수업을 게시 할 수 있습니까? 해당되지 않는 다른 기능을 제거 할 수 있습니다. – TechCrunch
Netbeans 통합 junit 4.12를 사용합니다. 전에 @RunWith (MockitoJUnitRunner.class)를 추가하는 것을 잊었지만 추가 한 후에도 오류가 표시됩니다. 오류 발생 : java.lang.NullPointerException. 그리고 내가 Source에 갈 때 여전히 세션에 갇혀 있습니다 .checkACL2() – Jane
두 번 다시 누르지 않아도됩니다. NullPointerException 스택 추적을 붙여 넣을 수 있습니까? – TechCrunch