private static GrouponCommonService grouponCommonService = null;
private static GrouponIndexService grouponIndexService = null;
static {
try {
grouponCommonService = (GrouponCommonService) SpringBeanProxy.getBean("grouponCommonService");
grouponIndexService = (GrouponIndexService) SpringBeanProxy.getBean("grouponIndexService");
// 直接初始化一次
getPromotionStatus();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Integer getPromotionStatusFromDB() {
GrouponConfig config = grouponCommonService.getGrouponConfigByMcsite();
。。。。
请问如何mock出grouponCommonService、 grouponIndexService,并mock出grouponCommonService.getGrouponConfigByMcsite()?
以下是我所做的,可是能mock出grouponCommonService对象,但getGrouponConfigByMcsite()方法返回值为空。
private void mockServiceImpl() {
// TODO Auto-generated method stub
new MockUp<SpringBeanProxy>() {
@Mock
public Object getBean(String beanName){
if("grouponCommonService".equals(beanName)) {
return new MockUp<GrouponCommonService>() {
@Mock
public GrouponConfig getGrouponConfigByMcsite() {
GrouponConfig config = new GrouponConfig();
config.setId(73);
config.setPriviewBeforeTime(new Date());
config.setPriviewEndTime(new Date());
config.setPriviewStartTime(new Date());
config.setPromotionEndTime(new Date());
return config;
}
}.getMockInstance();
}else if("grouponIndexService".equals(beanName)) {
return new MockUp<GrouponIndexService>() {
@Mock
public Date getDBDate() {
return new Date();
}
}.getMockInstance();
}
return null;
}
};
}
期待感兴趣的同仁指导。。。
相关推荐
可以用来Mock JAVA代码中的静态方法
基于行为的模拟关注的是测试对象如何与其他对象交互,而不是对象的内部状态。在 JMockit 中,你可以定义期望(Expectations),即模拟方法的调用和响应。例如,你可以设置当某个方法被调用时返回特定值,或者在特定...
静态方法由于其非实例化特性,通常难以通过常规的单元测试方式进行隔离和测试,因为它们不依赖于对象的状态。PowerMock提供了一种解决方案,让我们能够创建预期的行为,以便在测试中控制静态方法的行为。 首先,...
Python 提供了一个强大的库——`unittest.mock`,用于模拟(mock)对象、方法和类,以便在测试中隔离依赖关系,专注于测试目标代码的功能。本练习主要关注如何使用 `unittest.mock` 进行mock测试数据。 一、Mock...
### Mock对象介绍 #### 一、引言 在软件开发过程中,单元测试是确保代码质量的重要环节。然而,在测试特定代码段时,如果该代码依赖于外部系统(如数据库访问、网络请求等),就会带来一系列挑战。为了克服这些...
### 使用Mock对象在Java单元测试中的重要性及实践 #### 引言 在软件开发过程中,单元测试作为确保代码质量的重要环节,其有效性往往受到多种因素的影响,尤其是当待测方法依赖于外部资源如网络、数据库或其他复杂...
Mock平台基于JVM Sandbox(Java虚拟机沙箱)运行,它为开发者提供了一个安全的环境来运行和控制Java应用程序,确保了Mock操作不会影响到真实的生产环境。 JVM Sandbox是一个虚拟化技术,它可以隔离运行的Java应用,...
本文将深入探讨JMockit这一强大的mock框架,它不仅支持模拟私有成员、静态方法,还能自动化地完成mock对象的创建与注入等工作。通过一系列具体示例和概念解析,帮助读者全面掌握JMockit的核心功能及其实现细节。 ##...
Mock counterfeiter的工作原理是基于代码分析,它可以自动生成符合接口定义的Mock对象。在Go中,接口是一种强大的特性,允许我们定义一套方法集合,而Mock counterfeiter就是利用这一特性,为给定的接口创建Mock实现...
在现代软件开发中,API(应用程序接口)已经成为数据交换的核心,特别是RESTful API,它遵循HTTP协议,提供了一种简洁、无状态、基于资源的交互方式。Python Django框架是一个强大的Web开发平台,而将Django应用于...
虽然默认情况下Mock数据是静态的,但通过扩展,可以实现动态生成数据,如模拟随机用户、时间戳等。 3. **接口管理界面**: 对于大型项目,可以考虑添加一个简单的管理界面,用于查看、编辑和管理Mock接口,提高...
不错的文档,提供给科研人员
静态方法与对象实例无关,它们属于类本身,因此无法通过依赖注入的方式来模拟。PowerMock通过字节码操作,能够在运行时改变静态方法的行为,使得我们可以在测试中控制它们的返回值或行为。 对于私有方法,由于其...
3. **复杂的模拟**:可能支持模拟静态方法、final类或方法,这些都是传统Mock框架难以处理的。 4. **代码覆盖率**:结合探针,可能提供更精确的代码覆盖率报告,帮助确定未被测试的代码区域。 文件名“java0323”...
正如其名,在单元测试时,CUT(Code Under Test ,被测试代码)可能会依赖其他代码,可以使用JMockit API来mock被依赖的代码,从而进行隔离测试。 JMockit有两套API,mock API用来进行mock测试;mock-up API用来...
JMockit会自动管理模拟对象的状态,从录制模式到重播模式,最后到验证模式。 ### **验证结果** 验证结果是确保模拟行为与实际执行相符的关键步骤。JMockit提供了多种验证方式: 1. **结果验证(Result ...
5. **避免Mock静态方法**:静态方法没有实例,Mock起来较为困难,一般推荐重构代码以避免依赖静态方法。 在实际项目中,Mock可以用于以下场景: 1. **隔离外部服务**:比如模拟数据库查询,避免在测试中真正访问...
这个"基于mockjs轻量的可配置的mock数据服务库"项目,旨在提供一个简单、灵活且易于配置的解决方案,帮助开发者快速构建无需依赖实际后端API的测试环境。 在JavaScript开发过程中,尤其是进行单元测试或集成测试时...