pojo in action一书里面的TDD例子应该都是基于jmock的前一版本的,新一点的jmock的很多写法都不同。自己做了一下,还是不理解得很好。自己先发一个简单的做法,还并不知有什么做得不妥的地方。
首先建立测试用例:
public class PlaceOrderServiceTests extends MockObjectTestCase{
Mockery context = new Mockery();
public void testUpdateRestaurant_good() throws Exception{
//setup
PlaceOrderService service = new PlaceOrderService();
final RestaurantRepository restaurantRepository = context.mock(RestaurantRepository.class);
final String restaurantId = "1";
final String pendingOrderId = "1";
//expectations
context.checking(new Expectations(){{
allowing(restaurantRepository).findRestaurant(restaurantId,pendingOrderId);
}});
//execute
service.updateRestaurant(restaurantId,pendingOrderId);
//verify
context.assertIsSatisfied();
}
}
然后分别建立相应的类和接口:
public interface RestaurantRepository {
Restaurant findRestaurant(String restaurantId, String pendingOrderId);
}
public class Restaurant {
}
public class PlaceOrderService {
public void updateRestaurant(String restaurantId, String pendingOrderId) {
// TODO Auto-generated method stub
}
}
分享到:
相关推荐
JMock 是一个Java平台上的单元测试框架,专门用于模拟对象,以便在测试过程中控制和验证对象的行为。它基于EasyMock库,但提供了更强大的功能,尤其是对于处理复杂交互和顺序的场景。JMock使得开发者可以在不依赖...
在 JMock 中,模拟对象是类的一个实例,它代替了真实对象在测试中的角色。你可以设置模拟对象的行为,例如返回特定值或抛出异常,以此来控制测试环境。通过这种方式,你可以专注于测试单个组件的行为,而不是整个...
JMock-1.2.0-jars.zip是一个包含JMock核心库和CGLIB扩展库的压缩包。这个压缩包中的两个主要文件——jmock-core-1.2.0.jar和jmock-cglib-1.2.0.jar,是进行JMock测试时所必需的组件。 首先,我们来看jmock-core-...
它是一个接口,允许我们自定义bean的实例化逻辑,这在某些复杂场景下非常有用,比如动态代理、模拟对象的创建等。本篇文章将探讨如何结合`FactoryBean`与Jmock库来实现动态Mock类的注入,以便于进行单元测试。 首先...
在测试实例中,首先需要定义一个接口,例如IUserService,它包含一个sayHello的方法。然后是该接口的一个简单实现,比如UserServiceImpl类,它实现IUserService接口,并给出sayHello方法的一个直接返回。 接下来,...
1. **创建模拟对象**:使用JMock API创建一个模拟对象,它可以是任何接口或抽象类的实例。 2. **设置期待**:通过`expectationBuilder`定义模拟对象的方法调用,包括参数、调用次数和返回值。 3. **执行测试代码**...
Jmockdata是一款专为Java开发设计的测试工具,它的主要功能是模拟Java类型或对象的实例化,并能够自动地对这些对象进行随机数据的初始化。这在进行单元测试时尤其有用,因为它允许开发者创建虚拟的、含有随机数据的...
最后,我们创建了一个`HotelReservationService`实例,并进行实际的测试操作,验证了服务是否按照预期工作。 通过这样的测试脚本,我们可以在不依赖真实数据库或外部服务的情况下,对`HotelReservationService`的`...
声明一个Mockery实例。 expectations :声明用于指定期望的上下文。 mock :声明一个模拟实例。 rv :声明一个模拟的返回值。 Eclipse 首选项 Eclipse最爱 紧凑可读的测试代码使用了许多静态方法。 Eclipse 不为这些...
JMock是一个Java模拟框架,用于在单元测试中创建和控制对象行为。在测试过程中,有些依赖项可能不易于或不适合直接实例化,JMock允许开发者创建模拟对象来代替,从而可以专注于测试目标代码的逻辑,而不是依赖项的...
Mock方法则是单元测试中的一个重要工具,用于模拟复杂系统中的依赖关系,以便孤立地测试目标代码。在本篇文章中,我们将深入探讨单元测试与Mock方法的相关知识点。 首先,让我们理解单元测试的基本概念。单元测试是...
首先,一个空的实例被创建,其所有字段都会被赋予默认值。对于`int`类型,默认值是0,所以此时`i`的值为0。 3. **字段初始化**:然后,字段的初始值表达式会被执行。在`Test`类中,字段`i`被赋值为1,这是字段初始...
- **第一个入门实例**:介绍了如何搭建Struts2环境,创建简单的Action类并处理请求响应流程。 - **注意事项**:例如避免使用过时或存在漏洞的版本,关注配置文件的安全性设置等。 - **插件介绍**:Struts2提供了丰富...
jMock是一个Java单元测试框架,用于创建和执行模拟对象,特别是在进行行为验证时。在RPN计算器的开发过程中,jMock可能被用来模拟与模型交互的外部依赖,比如输入设备或者存储结果的地方。通过模拟这些依赖,开发者...
在编程中,当我们的代码依赖于其他不可控或难以配置的服务(如数据库、网络API等)时,Mock可以帮助我们创建一个虚拟的、可控制的替代品,这个替代品的行为和返回值是可以预设的。 描述中的链接指向了一篇关于Mock...
一个优秀的测试框架能够简化测试过程,提高测试效率,并确保代码的健壮性。"Integrated Testing Framework",作为一款开源的测试解决方案,为开发者提供了一站式的测试服务,包括测试用例的生成、执行、错误报告、...
这将创建一个不执行任何实际操作的MyClass实例。 3. **配置Mock行为**:可以使用`when()`和`.thenReturn()`, `.thenThrow()`, `.doNothing()`, `.doAnswer()`等方法来设定Mock对象的方法调用行为。例如,`when...