The 7 Things I Know About Cyber Security After 25 Years | April 2024
Java Unit Testing with Unitils
1. Java Unit Testing with Unitils Mikalai Alimenkou http://xpinjection.com 21.05.2011
2. Background Java Technical Lead/Scrum Master at Zoral Labs 6+ years in software development 4+ years of working by Agile methodologies Expert in Agile engineering practices Founder and coachat XP Injection (http://xpinjection.com) Organizer of Selenium Camp and JEEConf conferences
4. Unitils History Spring test integration Multi db support Various improvements Unitils 3.0 DbMaintain 2.2 Testing guidelines from brainstorm Separate modules Unitils 2.0 Unitils 1.0 DbMaintain 2.0 DbMaintain separated from Unitils Unitils RC1
5. Unitils Facts Open source Integrates with JUnit and TestNG Modular and flexible architecture Lots of useful utilities
6. Modular Architecture Existing modules DatabaseModule DbUnitModule HibernateModule MockModule EasyMockModule InjectModule SpringModule Create new or change implementation Configure only needed modules
8. Database Testing Main problems Mocking or real data? JDBC, Hibernate, JPA, … Testing approaches Create database, clean database Local transactions
9. Unitils Solution Database maintainer Small test datasets with DbUnit @Transactional support Separate schema per developer Custom DataSource for more control
10. Database Maintenance Keep database schema in VCS Great versioning technique with incremental updates Ability to disable constraints
11. Database Maintenance Supports large number of databases Prepares sequences and identity columns Many options for database and data maintenance Generate XSD or DTD for DbUnit datasets
14. DbMaintain Scripts Structure Rename of scripts and folders is supported Multi-database and patches support Script information is stored in special table
15. DbMaintain Execution Ant <updateDatabasescriptLocations="${database.archive}"> <database driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:mem:mydb" userName="admin" password="pwd" schemaNames="PUBLIC" /> </updateDatabase> Command line /path/to/dbmaintain/bin/dbmaintain.sh update path/to/scriptFolderOrArchive Java code URL configurationUrl = new File("dbmaintain.properties").toURI().toURL(); MainFactorymainFactory = new MainFactory(configurationUrl); DbMaintainerdbMaintainer = createDbMaintainer(); dbMaintainer.updateDatabase(false);
24. JPA Integration Supports Hibernate, Toplink, OpenJPA JpaEntityManagerFactory creates EntityManager for each test JPA utilities for injection and mapping validation
25. Assertion Utilities Reflection based Flexible comparison Ignore types of numbers and collections Ignore order in collections Ignore properties Able to compare only some properties