一:测试工作:
对于dao层的测试我们使用到了TestNg和dbunit已经spring-test-dbunit框架:
在使用dbunit工具的使用使用到了一个
<!-- dbutil测试工具的引入依赖 -->
<dependency>
<groupId>com.github.springtestdbunit</groupId>
<artifactId>spring-test-dbunit</artifactId>
<version>1.2.0</version>
</dependency>
这个工具框架,很有用,我们来看具体的dao层的测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/** * 对dao进行单元测试的类 * classpath:/dbutils_xml/expect.xml * */ @SuppressWarnings ( "deprecation" ) @ContextConfiguration (locations = { "classpath:applicationContext.xml" , "classpath:dispatcher-servlet.xml" }) //配置事务的回滚,对数据库的增删改都会回滚,便于测试用例的循环利用 @TransactionConfiguration (transactionManager = "transactionManager" , defaultRollback = true ) @Transactional @TestExecutionListeners ({DbUnitTestExecutionListener. class , DependencyInjectionTestExecutionListener. class , DirtiesContextTestExecutionListener. class }) // 如果在Spring Test DbUnit中不配置其他的数据源默认使用Spring容器中id="dataSource"的数据源,Spring Test DbUnit支持配置多数据源。 @DbUnitConfiguration (databaseConnection= "pooledDataSource" ) public class DaoTestByTestNG extends AbstractTestNGSpringContextTests{ @Autowired private GuanzhuMapper guanzhuMapper; @Test @DatabaseSetup (type=DatabaseOperation.CLEAN_INSERT,value= "classpath:/dbutils_xml/setup.xml" ) //setup阶段执行clean_insert操作,数据导入到数据库中,在测试之前执行 @ExpectedDatabase (assertionMode=DatabaseAssertionMode.NON_STRICT,value= "classpath:/dbutils_xml/add_expect.xml" ) //将测试操作后的数据库数据与期望的xml数据进行比较是否相等,来判定测试是否通过,assertionMode设置比较的模式。跑完test后执行 @DatabaseTearDown (type=DatabaseOperation.CLEAN_INSERT,value= "classpath:/dbutils_xml/setup.xml" ) //恢复数据库中的数据,测试之后执行。 public void testDelete() { System.out.println( "delete" ); int deleteByPrimaryKey = guanzhuMapper.deleteByPrimaryKey( 12 ); } } |
第一:使用Spring-Test对Spring框架进行单元测试,需要引入下面的java包
<!--spring单元测试依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${springframework}</version>
<scope>test</scope>
</dependency>
第二:因为采用的TestNg测试框架,没有使用junit测试框架,所以在编写的单元测试类都需要继承AbstractTestNGSpringContextTests
第三:在运行单元测试框架的时候,使用首先dbunit备份数据库中的真实数据,然后在测试的过程中使用测试数据,最后单元测试完成之后再把保存的真实数据还原到数据库中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//备份数据库文件 @BeforeClass public static void testBackup(){ try { System.out.println( "@BeforeClass" ); IDatabaseConnection con = new DatabaseConnection(DBUtils.getConnection()); IDataSet createDataSet = con.createDataSet(); FlatXmlDataSet.write(createDataSet, new FileWriter( "d:/test22.xml" )); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } //还原数据库文件 @AfterClass public static void testResume(){ try { System.out.println( "@AfterClass" ); IDatabaseConnection con = new DatabaseConnection(DBUtils.getConnection()); IDataSet dataSet = new FlatXmlDataSet( new FlatXmlProducer( new InputSource( "d:/test22.xml" ))); //清空数据库中的数据并插入xml中的数据 org.dbunit.operation.DatabaseOperation.CLEAN_INSERT.execute(con,dataSet); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } |
二:部署工作
第一步:服务器的环境部署
1:安装jdk8
2:安装MySQL5.7,可以按照这个链接进行安装:https://www.cnblogs.com/chancy/p/9444187.html
3:在服务器上安装tomcat,安装完成过后开启服务,在自己电脑浏览器地址栏输入IP:8080
4:可以用Xftp将已经打包好的 “项目.war” 发送到服务器webapps目录下,并改名为ROOT.war(记得将原来的ROOT删除)
5:然后浏览器输入IP:8080/就出现了我们的项目了
(三)项目访问地址以及需注意的相关事项说明:
浏览器地址栏输入:http://148.70.249.79:8080/
一些事项说明:
1:管理员登录也是通过该页面进行登录,有个管理员账号,然后便可以进入后台管理系统。
下图即为后台管理界面:
2:发布房屋上传图片后,该页面没有什么明显显示,但是你将光标移到上传处就会显示你的图片名字,即成功上传。
3:项目可能还存在一些bug,请大家多多指教!