数据驱动测试(二) – 实例
特点:
- 1. 工作量小
- 2. 测试案例很好写
- 3. 可重复利用
- 4. 便于持续集成
[u]步骤:[/u]
- 步骤一:准备数据库
- 步骤二:生成测试数据模板
- 步骤三:准备测试数据
- 步骤四:导入测试数据
- 步骤五:准备单元测试
- 步骤六:执行单元测试
步骤一:准备数据库
INFO -- ERD ==> DDTT_BOOK
INFO -- ERD ==> DDTT_CLASS
INFO -- ERD ==> |-DDTT_STUDENT_CLASS
INFO -- ERD ==> DDTT_SCHOOL
INFO -- ERD ==> |-DDTT_STUDENT
INFO -- ERD ==> |-DDTT_STUDENT_CLASS
步骤二:生成测试数据模板
由工具自动从数据库中导出,无需任何手工动作。
INFO -- ########## Start to sync table structure ##########
INFO -- D:\research\ddt\dev\bin\test-data-config.properties is loaded from absolute path.
INFO -- ########## Configurations ##########
INFO -- Excel version: 2007
INFO -- Tables and versions: all
INFO -- Processed tables: DDTT_, XXX_
INFO -- Ignored tables: XXX_\S*|YYY_\S*
INFO -- Process child tables: true
INFO -- Disable triggers: false
INFO -- ########## Configurations ##########
INFO -- Test Data: D:\research\ddt\dev\DDT_TEST_DATA.xlsx
INFO -- Load tables from database to memory
INFO -- =========== Start to load tables ... ===========
INFO -- Load meta data for table: DDTT_BOOK [1/5]
INFO -- Load meta data for table: DDTT_CLASS [2/5]
INFO -- Load meta data for table: DDTT_SCHOOL [3/5]
INFO -- Load meta data for table: DDTT_STUDENT [4/5]
INFO -- Load meta data for table: DDTT_STUDENT_CLASS [5/5]
INFO -- =========== End to load tables ===========
INFO -- =========== Start to sync all tables ... ===========
INFO -- To sync the sheet DDTT_BOOK
INFO -- To sync the sheet DDTT_CLASS
INFO -- To sync the sheet DDTT_SCHOOL
INFO -- To sync the sheet DDTT_STUDENT
INFO -- To sync the sheet DDTT_STUDENT_CLASS
INFO -- =========== End to sync all tables ===========
INFO -- All test data cells are protected, password is 'password'
INFO -- Updating the Master Config sheet ...
INFO -- ########## Table structure is sync successfully. ##########
步骤三:准备测试数据
步骤四:导入测试数据
INFO -- ########## Start to sync test data ##########
INFO -- D:\research\ddt\dev\bin\test-data-config.properties is loaded from absolute path.
INFO -- ########## Configurations ##########
INFO -- Excel version: 2007
INFO -- Tables and versions: all
INFO -- Processed tables: DDTT_, XXX_
INFO -- Ignored tables: XXX_\S*|YYY_\S*
INFO -- Process child tables: true
INFO -- Disable triggers: false
INFO -- ########## Configurations ##########
INFO -- Test Data: D:\research\ddt\dev\DDT_TEST_DATA.xlsx
INFO -- =========== Start to get records ==========
INFO -- Get record list of sheet=DDTT_BOOK, version=all
INFO -- Get record list of sheet=DDTT_CLASS, version=all
INFO -- Get record list of sheet=DDTT_SCHOOL, version=all
INFO -- Get record list of sheet=DDTT_STUDENT, version=all
INFO -- Get record list of sheet=DDTT_STUDENT_CLASS, version=all
INFO -- =========== Get records successfully ==========
INFO -- =========== Start to clear records ==========
INFO -- Clear DDTT_BOOK starts.
INFO -- Clear DDTT_BOOK finished. 3 record(s) are deleted.
INFO -- Clear DDTT_CLASS starts.
INFO -- Clear DDTT_STUDENT_CLASS starts.
INFO -- Clear DDTT_STUDENT_CLASS finished. 2 record(s) are deleted.
INFO -- Clear DDTT_CLASS finished. 2 record(s) are deleted.
INFO -- Clear DDTT_SCHOOL starts.
INFO -- Clear DDTT_STUDENT starts.
INFO -- Clear DDTT_STUDENT finished. 2 record(s) are deleted.
INFO -- Clear DDTT_SCHOOL finished. 2 record(s) are deleted.
INFO -- =========== Clear records successfully ==========
INFO -- =========== Start to insert records ==========
INFO -- Insert DDTT_BOOK starts.
INFO -- Insert DDTT_BOOK finished. 3 record(s) are inserted.
INFO -- Insert DDTT_CLASS starts.
INFO -- Insert DDTT_CLASS finished. 2 record(s) are inserted.
INFO -- Insert DDTT_SCHOOL starts.
INFO -- Insert DDTT_SCHOOL finished. 2 record(s) are inserted.
INFO -- Insert DDTT_STUDENT_CLASS starts.
INFO -- Insert DDTT_STUDENT starts.
INFO -- Insert DDTT_STUDENT finished. 2 record(s) are inserted.
INFO -- Insert DDTT_STUDENT_CLASS finished. 2 record(s) are inserted.
INFO -- =========== Insert records successfully ==========
INFO -- ########## Test data is sync successfully! ##########
步骤五:准备单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:bean-ddtt-test.xml")
public class StudentServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
@Resource
private StudentService studentService;
@Test
//DDTT v0.001
public void findStudentTest() {
//this case will find a issue: RowMapper doesn't work for no record found case
StudentTO to = studentService.findStudent(1234567890);
Assert.assertNull(to);
to = studentService.findStudent(1);
Assert.assertNotNull(to);
Assert.assertEquals(to.getName(), "Jason");
}
@Test
//DDTT v0.002
public void deleteStudentTest() {
studentService.deleteStudent(2);
StudentTO to = studentService.findStudent(2);
Assert.assertNull(to);
}
}
步骤六:执行单元测试
- 大小: 23.2 KB
- 大小: 20.1 KB
分享到:
相关推荐
9. **测试数据驱动**:通过使用数据驱动测试,可以从外部文件(如CSV或Excel)获取测试数据,使测试脚本更具灵活性和可扩展性。 10. **并行测试**:Selenium支持多线程和多进程,可以同时在多个浏览器或多个实例上...
- **7407驱动门** – 7407 Driver Gate - **1N914二极管** – 1N914 Diode - **74LS00与非门** – 74LS00 NAND Gate - **74LS04非门** – 74LS04 NOT Gate - **74LS08与门** – 74LS08 AND Gate - **74LS390 TTL双十...
9. **性能测试**:资料中可能包含实际的性能测试数据,展示驱动器在不同条件下的运行效果,以证明其优越的性能。 10. **维护与保养**:长期稳定运行的保证离不开定期的维护和保养,资料可能提供了相关的建议和注意...
总的来说,这个项目涵盖了嵌入式系统开发的多个方面,包括微控制器编程、传感器驱动、无线通信和图像处理,是学习和实践物联网应用的一个很好的实例。通过这样的项目,开发者可以提升在硬件接口设计、网络通信和软件...
在MVVM中,View与ViewModel之间的通信通过数据绑定来实现,这样开发者无需手动设置UI元素的属性,而是让数据驱动UI的更新。 **Data Binding库的使用** 1. **启用Data Binding**:首先,你需要在Android Studio中...
进行硬件分析,首先利用工作站自身硬件测试固化程序检测,检测结果是驱动单元完好,但机械手臂(变位器)的交流伺服电机不能工作,利用本文3.2节分析,测量出电机绕组短路。 四、修复后的性能测试 上表显示修理后...
【jsp与数据库连接源码,SQL2000连接测试程序】 在Web开发中,Java Server Pages (JSP) 是一种动态网页技术,用于创建交互式的网页应用。它结合了HTML和Java代码,使得开发者可以在服务器端处理数据并生成响应的...
在Android应用开发中,Model-View-Presenter(MVP)模式是一种常见的设计模式,它将业务逻辑、数据处理和用户界面解耦,提高了代码的可测试性和可维护性。EasyMVP是一个专为Android设计的强大且简洁的MVP库,它引入...
5. **Integration Services管理**:SSMS 也支持对Integration Services(SSIS)包的开发、测试和部署,用于数据迁移、ETL(提取、转换、加载)等任务。 6. **Notification Services管理**:通过SSMS,可以配置和...
- 任务可以是数据驱动的也可以是非数据驱动的。 3. **数据流组件(Data Flow Components):** - 数据流组件专门用于处理数据,包括源(Source)、转换(Transformations)和目的地(Destinations)。 - 源组件用于从外部...
【标题】"chromedriver Python开发必备"涉及到的主要知识...综上所述,`chromedriver`是Python自动化开发中的重要工具,特别是在需要与Chrome浏览器交互的场景下,如网页自动化测试、数据抓取和高并发的抢购秒杀应用。
8. **基本概念**:"CAPL Basics by Vector – Three Examples Reloaded"提供CAPL的基础知识,通过三个实例加深理解,覆盖了CAPL的核心概念。 9. **自动日志保存**:"CAPL Programming on Automatic Logfile Saving...
7. **测试**:最后,我们需要编写单元测试来验证每个方法的功能,确保系统在各种情况下都能正确运行。 通过以上步骤,我们可以构建一个基本的"java超市管理list框架"。这个框架不仅可以管理货物,还可以扩展到更...
总之,搭建WebSphere Integration Developer环境涉及概要文件的管理、数据源的配置、IDE的安装与项目导入、服务器配置以及应用的部署和测试。遵循上述步骤,你应该能够成功地搭建起一个适合开发和调试的WID环境。在...
- 输入**全局数据库名**,这是一个唯一的标识符,用于识别整个数据库实例。 - 继续输入**主机名**,这通常是你的计算机名称或IP地址,确保它与你的网络环境相符。 - 如果你想进行连接测试,可以选择"是",...
- **高效**:数据被编码成二进制形式,占用空间少,解析速度快。 - **跨语言**:支持多种编程语言,便于不同系统之间的数据交换。 - **应用场景**:适合用于网络通信、数据持久化等领域。 ##### 1.7 Disruptor -...