- 浏览: 2469795 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
最近写的一个工具类, 用来生成mock的javabean对象, 比如将一条模拟数据直接生成javabean的setter代码
public class MockBuilder extends ToStringBuilder { private String objectName; /** 是否包含日期时间字段 */ private boolean includeDateField = false; public MockBuilder(Object object, String objectName) { super(object, ToStringStyle.MULTI_LINE_STYLE, null); this.setObjectName(objectName); } public MockBuilder(Object object, String objectName, boolean includeDateField) { this(object, objectName); this.includeDateField = includeDateField; } public static String toString(Object object, String objectName) { return toString(object, objectName, false); } public static String toString(Object object, String objectName, boolean includeDate) { return new MockBuilder(object, objectName, includeDate).toString(); } public static void sysPrint(Object object, String objectName) { sysPrint(object, objectName, false); } /** * @param object * @param objectName * @param includeDate 是否包含日期时间字段 */ public static void sysPrint(Object object, String objectName, boolean includeDate) { System.out.println(toString(object, objectName, includeDate)); } @SuppressWarnings("unchecked") public String toString() { if (this.getObject() == null) { return "<null>"; } getStringBuffer().delete(0, getStringBuffer().length()); Class clazz = this.getObject().getClass(); this.appendWriteMethods(clazz); return this.getStringBuffer().toString(); } public void setObjectName(String objectName) { this.objectName = objectName; } public String getObjectName() { return objectName; } @SuppressWarnings("unchecked") protected void appendWriteMethods(Class clazz) { try { BeanInfo beanInfo = Introspector.getBeanInfo(clazz); PropertyDescriptor[] descriptors = beanInfo .getPropertyDescriptors(); for (PropertyDescriptor descriptor : descriptors) { Method writeMethod = descriptor.getWriteMethod(); if (writeMethod == null) continue; Method readMethod = descriptor.getReadMethod(); if (readMethod == null) { continue; } String setterName = writeMethod.getName(); Object value = readMethod.invoke(getObject(), new Object[] {}); if (value == null) { continue; } if (value instanceof Number) { if (((Number) value).doubleValue() == 0) { continue; } } if (value instanceof Date) { if (includeDateField) { value = "new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\").parse(\"" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss") .format(value) + "\")"; } else { continue; } } else if (value instanceof String) { if (value.equals("")) { continue; } value = "\"" + value + "\""; } if (value instanceof List) { continue; } this.getStringBuffer().append(objectName).append(".").append( setterName).append("(").append(value).append(");\n"); } } catch (Exception e) { throw new RuntimeException(e); } } public static void main(String[] args) { SpuDO spu = new SpuDO(); spu.setName("The Body Shop橙花茉莉香水"); System.out.println(toString(spu, "spuMock")); ; } }
发表评论
-
Effective Unit Test:代码面前并非人人平等
2012-02-05 15:38 1703这里的观点非常值得探讨, 所有的产品代码就像是一项投资, 有些 ... -
使用Guava Supplier Mock Datetime
2012-02-04 23:35 2801通过下面的例子了解Guava Supplier的用法.在做单元 ... -
对多线程进行测试
2011-07-02 15:31 1414在junit下, 很难对多线程的代码进行测试, 因此需要借助其 ... -
补习一下EasyMock
2010-04-28 09:18 5046最近有时间, 再温习一下easymock相关的东东 http ... -
结合使用Dummy, InjectTo, PartialMock的单元测试
2009-12-24 21:21 1482结合使用Dummy, InjectTo, PartialMoc ... -
使用代码方式运行指定单元测试类及方法
2009-12-17 08:57 1770记一下, 备忘 private void runT ... -
JunitCore
2009-12-15 01:03 0JUnitCore core = new JUnitCore( ... -
修改dbunit的几个bug兼对dbunit进行扩展
2009-12-08 20:51 3194最近在对unitils进行扩展, 主要是数据库这块儿的内容, ... -
让Unitils实现excel下的多数据源支持
2009-12-03 21:02 3946说明:这里的多数据源需要利用spring中配置的多个DataS ... -
unitils中spring module初始化源码解读
2009-12-03 20:32 2656spring module的初始化还算简单, 但是熟悉里面的原 ... -
解决unitils中的dbunit使用spring中定义的多数据源
2009-12-02 20:07 3173最近在研究unitils, dbunit来适应目前的单元测试. ... -
Unitils 学习笔记
2009-11-27 19:44 7789源码部分 EasyMock相关的 有三个注解: Mock ... -
使用classloader自定义测试套件TestSuite
2009-10-21 19:04 2341junit自带了一个suite用来将多个test case放在 ... -
《单元测试之道Java版——使用JUnit》读书笔记
2009-06-09 23:06 3420这个可能是到目前为止 ... -
JunitRunner定制之模仿@Before对属性进行初始化
2009-02-12 21:54 2544在测试的过程中, 会用到一些模拟数据, 希望在每次调用测试方法 ... -
打造自己的单元测试容器——Junit Runner扩展举例
2009-02-05 23:40 6218最近对java的annotation和junit的Runner ... -
junit4源码浅析
2009-02-05 21:12 7350junit3和junit4是两个非常不同的版本, 不能简单的理 ... -
最近单元测试中写的一个Assert
2009-01-15 22:03 2917该类提供的assert方法主要针对数据库的单元测试中, 使用S ... -
EasyMock最佳实践
2008-12-20 20:43 30116推荐easymock入门贴: 窥探 ... -
JUnit 4新特性笔记
2008-12-11 08:47 2930测试任何可能的错误。 ...
相关推荐
3. **代码生成工具**:例如Apache MyBatis的MyBatis Generator,它可以根据数据库表结构生成DAO层、Service层和实体类代码。Eclipse和IntelliJ IDEA等IDE也内置了代码生成功能,能快速生成getter、setter、构造函数...
Python Mock库是Python开发中的一个重要工具,主要用于单元测试和模拟对象。在进行软件开发时,尤其是后端开发,单元测试是验证代码功能正确性的重要环节。Mock库允许开发者创建模拟对象,这些对象可以替代真实对象...
安装此插件后,用户无需逐一编写setter方法,只需在IDEA中选中BEAN类的某个方法内,就可以一键生成所有属性的setter调用,这样就能快速完成数据初始化或mock数据的准备工作。这不仅节省了时间,还减少了出错的可能性...
Junit可以用于测试Java类的方法和字段,使用Mock对象来模拟外部依赖项。例如,测试某个类的方法时,使用Mock对象来模拟外部依赖项,例如数据库或网络资源等。 八、 Mock object进行重构 Junit可以用于测试Java类的...
例如,@Data注解可以自动生成一个类的所有基本getter和setter,减少了大量重复代码,提高了开发效率。 3. **Hamcrest**:Hamcrest是一个匹配对象的库,广泛应用于单元测试中,它提供了丰富的断言方法,使得测试代码...
Spring支持单元测试和集成测试,提供了Mock对象和测试工具,方便开发者进行测试驱动开发(TDD)。 **与其他框架的整合**: Spring非常灵活,能够与众多其他框架无缝集成,如Struts、JSF、Hibernate等。Spring MVC...
由于注入的灵活性,开发者可以更加容易地替换测试用的存根(stub)或模拟(mock)对象,这有助于编写易于测试的代码。 另外,AngularJS的依赖注入还支持构造函数注入(constructor injection)、setter注入和接口...
4. **Mock对象与Stub的区别**:Mock对象用于模拟被依赖的对象,记录其方法调用,以便于验证行为是否符合预期;而Stub则用于返回预定义的值,通常不记录调用,主要服务于控制测试环境。 5. **集成测试与单元测试**:...
例如,通过DI,我们可以轻松地更换数据库连接池实现,或者在单元测试中注入mock对象。 至于文件名"Hello (SiA2 chapter 1)",这可能是某个教程或示例项目的部分,可能涵盖了Spring IoC和DI的基础概念。在实际的学习...
为了兼容原有代码中的方法调用,可以使用`BeanUtils.copyProperties()`方法将新生成的对象属性复制到原有的业务Bean中: ```java TestBean testBean = JMockData.mock(TestBean.class); MyBusinessBean business...
9. **测试支持**:Spring提供了一系列的测试工具,如`@SpringBootTest`注解,用于集成测试,以及`@MockBean`和`@Autowired`等,帮助开发者编写单元测试和集成测试。 总之,Spring3.2.3基础类包是学习Spring框架入门...
3. 使用final修饰常量和不再改变的对象引用,增加代码稳定性。 4. 尽量减少成员变量的公开,使用getter和setter控制访问权限。 三、异常处理 1. 不捕获异常就抛出,不要轻易忽略异常。 2. 异常信息要明确,提供足够...
5. **工具模块**:通用的工具类,如Spring表达式语言(SpEL)和Spring Aspects。 6. **消息模块**:处理消息传递,如JMS(Java Message Service)。 7. **测试模块**:提供对Spring应用的测试支持,包括Mock对象和...
`@InjectMocks`注解则可以用来自动注入模拟对象到被测试类的构造函数或setter方法中,帮助构建测试场景。 Mockito的验证模式有严格和松散两种。严格模式下,Mockito会检查所有未验证的调用,并抛出错误,确保所有...
- **工具模块**:提供通用的工具类支持,如类路径扫描和资源加载。 - **消息模块**:支持JMS(Java Messaging Service)和其他消息传递系统。 - **测试模块**:为Spring组件和应用提供测试支持。 2、使用 Spring ...
每个被测试的源代码模块应对应一个或多个测试类,这些测试类应放在与源代码同级的“test”目录下,便于持续集成工具自动执行。 **3. 命名规范** - **测试类**:测试类的命名通常遵循“被测试类名+Test”的规则,...
10. **测试**:依赖注入使得测试变得更加简单,因为可以通过构造函数或者setter方法注入mock对象,从而隔离被测试的组件。 通过深入理解这些知识点,开发者可以更好地利用Spring的自动装配功能,提高代码的可维护性...
`org.springframework.test`和`org.springframework.mock`包下的类和注解,如`@Autowired`、`@MockBean`和`@WebMvcTest`,可以帮助开发者编写高效且全面的测试代码。 7. **Spring Boot**:虽然Spring Boot不属于...
例如,我们可以使用`@MockBean`注解创建mock对象,模拟某些复杂的依赖,以隔离被测试的代码。另外,`@SpyBean`则允许部分模拟bean的行为,只替换部分方法。 总的来说,SpringJUnit为Spring开发者提供了一个强大的...