【发布时间】:2013-11-17 17:22:08
【问题描述】:
我正在学习 Mockito。我在为嵌套对象创建模拟时遇到问题。见
public interface BaseManager {
public Query createQuery(String queryString);
}
还有一个实现类
public class BaseManagerImpl implements BaseManager {
@Autowired
private SessionFactory sessionFactory;
// ...
}
模块级休眠管理器,例如:
public interface RegistrationManager {
@Transactional
public List<Country> getCountries();
}
还有一个实现类
public class RegistrationManagerImpl implements RegistrationManager {
@Autowired
private BaseManager baseManager;
// ...
}
现在我在创建模拟基础管理器时遇到了问题。我的测试课是:
public class MockitoTest {
private RegistrationManager registrationManager = new RegistrationManagerImpl();
@Mock private BaseManager baseManager;
@Mock private SessionFactory sessionFactory;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
// baseManager.setSessionFactory(sessionFactory);
registrationManager.setBaseManager(baseManager);
}
// ...
// @Test
}
问题:sessionFactory 没有在 baseManager 中实例化。 请帮助创建模拟对象。提前致谢!
【问题讨论】:
-
“baseManager 内部的 NullPointerException”是什么意思?你已经模拟了你的
baseManager对象——它不应该执行任何你没有存根的代码。在此示例中您没有显示更多内容;请发布实际的 JUnit 测试和 full 堆栈跟踪。