【发布时间】:2020-04-10 20:39:57
【问题描述】:
我试图调用这个类的第二个方法,总是得到null。请注意,它返回new User(),但是在测试类中我总是得到null:
@Stateless
public class UserDAO2 {
public Connection getConnFromPool(int i) {
return null;
}
public User readByUserid(String s) {
System.out.println("In DAO 2");
Connection c = getConnFromPool(1);
return new User();
}
}
还有测试类:
@RunWith(MockitoJUnitRunner.class)
public class UserBeanUnitTest {
@InjectMocks
private UserDAO2 dao2;
@Before
public void setup() {
dao2 = Mockito.mock(UserDAO2.class);
MockitoAnnotations.initMocks(this);
}
@Test
public void testBean() {
Mockito.when(dao2.getConnFromPool(1)).thenReturn(null);
User expectedUser = new User();
expectedUser.setSk(1);
expectedUser.setFirstName("David");
expectedUser.setLastName("Gahan");
expectedUser.setUserid("user1");
User user = dao2.readByUserid("user1"); // <-- this method always returns null
assertThat(user).isEqualTo(expectedUser); // <-- test fails as expectedUser != null
}
}
另外,请注意System.out.println 永远不会被打印出来。如何解决此问题以实际拨打dao.readByUserid()?
【问题讨论】:
标签: java mockito ejb java-ee-8