DAO层单元测试编码和问题排查

SecKillDaoTest .java(注意接口参数使用注解@Parm(“parameter”))

package org.secKill.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.secKill.entity.SecKill;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import java.util.Date;
import java.util.List;

import static org.junit.Assert.*;

/**
 * Created by 谭雪娇 on 2017/5/4.
 * 配置spring和junit整合,junit启动时加载springIOC容器
 * spring-test,junit
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml"})
public class SecKillDaoTest {
//注入Dao实现类依赖
    @Resource
    private SecKillDao secKillDao;
    @Test
    public void testQueryById() throws Exception {
        long id=1000;
        SecKill secKill=secKillDao.queryById(id);
        System.out.println(secKill.getName());
        System.out.println(secKill);

}
//100元秒杀诺基亚
//   SecKill{secKillId=1000, name='100元秒杀诺基亚', number=10000, startTime=Fri Feb 17 12:02:05 CST 2017,
// endTime=Sat Dec 21 00:00:00 CST 2019, createTime=Wed Dec 21 00:00:00 CST 2016}

    @Test
    public void testQueryAll() throws Exception {
//     java没有保存形参的记录:queryAll(int off,int,limit)->queryAll(arg0,arg1)
        List<SecKill> secKills=secKillDao.queryAll(0,100);
        for(SecKill secKill:secKills){
            System.out.println(secKill);
        }
    }
//        SecKill{secKillId=1004, name='1400元秒杀魅族4', number=1099, startTime=Fri Feb 17 12:02:28 CST 2017, endTime=Sat Feb 17 11:48:00 CST 2018, createTime=Fri Feb 17 11:48:00 CST 2017}
//        SecKill{secKillId=1000, name='100元秒杀诺基亚', number=10000, startTime=Fri Feb 17 12:02:05 CST 2017, endTime=Sat Dec 21 00:00:00 CST 2019, createTime=Wed Dec 21 00:00:00 CST 2016}
//        SecKill{secKillId=1003, name='1600元秒杀小米4', number=1200, startTime=Fri Feb 17 11:47:47 CST 2017, endTime=Sat Jul 23 00:00:00 CST 2016, createTime=Sat Jul 23 00:00:00 CST 2016}
//        SecKill{secKillId=1002, name='1000元秒杀ipad1', number=3500, startTime=Fri Feb 17 11:47:41 CST 2017, endTime=Thu May 12 00:00:00 CST 2016, createTime=Thu May 12 00:00:00 CST 2016}
//        SecKill{secKillId=1001, name='5000元秒杀iphone7', number=1700, startTime=Fri Feb 17 11:47:36 CST 2017, endTime=Mon Apr 11 00:00:00 CST 2016, createTime=Mon Apr 11 00:00:00 CST 2016}
//        SecKill{secKillId=1005, name='1400元秒杀小米3', number=1100, startTime=Fri Feb 17 11:48:23 CST 2017, endTime=Thu Jan 21 00:00:00 CST 2016, createTime=Thu Jan 21 00:00:00 CST 2016}

    @Test
    public void testReduceNumber() throws Exception {
        Date KillDate=new Date();
        int updateCount=secKillDao.reduceNumber(1000L,KillDate);
        System.out.println("updateCount:"+updateCount);

}

//updateCount:1
}

testInsertSuccessKilled.java

package org.secKill.dao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.secKill.entity.SuccessKilled;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import static org.junit.Assert.*;

/**
 * Created by 谭雪娇 on 2017/5/4.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/spring-dao.xml")
public class SuccessKilledDaoTest {
    @Resource
    private SuccessKilledDao successKilledDao;
    @Test
    public void testInsertSuccessKilled() throws Exception {
        long id=1000L;
        long number=13535353535L;
        int insertCount=successKilledDao.insertSuccessKilled(id,number);
        System.out.println("insertCount:"+insertCount);
    }
    //第一次执行:insertCount:1
    //第二次执行:insertCount:0
    @Test
    public void testQueryByIdWithSecKill() throws Exception {
        long id=1000L;
        long number=13535353535L;
        SuccessKilled successKilled=successKilledDao.queryByIdWithSecKill(id,number);
        System.out.println(successKilled);
        System.out.println(successKilled.getSecKill());
    }
    //SuccessKilled{secKillId=1000, userPhone=13535353535, state=0, createTime=Thu May 04 19:40:19 CST 2017}
    //SecKill{secKillId=1000, name='100元秒杀诺基亚', number=9999, startTime=Thu May 04 19:14:21 CST 2017, endTime=Sat Dec 21 00:00:00 CST 2019, createTime=Wed Dec 21 00:00:00 CST 2016}

}

DAO层单元测试编码和问题排查的更多相关文章

  1. 使用springboot实现一个简单的restful crud——02、dao层单元测试,测试从数据库取数据

    接着上一篇,上一篇我们创建了项目.创建了实体类,以及创建了数据库数据.这一篇就写一下Dao层,以及对Dao层进行单元测试,看下能否成功操作数据库数据. Dao EmpDao package com.j ...

  2. dao层单元测试报错CONDITIONS EVALUATION REPORT

    0 环境 系统:win10 编辑器:IDEA 1 正文 1.1 起因 在controller层测试 测试url时没问题的 但是我单元测试就报错 1.2 排查 因为controller层 springb ...

  3. 使用Unitils测试DAO层

    Spring 的测试框架为我们提供一个强大的测试环境,解决日常单元测试中遇到的大部分测试难题:如运行多个测试用例和测试方法时,Spring上下文只需创建一次:数据库现场不受破坏:方便手工指定Sprin ...

  4. 01 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之业务分析与DAO层

    作者:nnngu 项目源代码:https://github.com/nnngu/nguSeckill 这是一个整合IDEA+Maven+SSM框架的高并发的商品秒杀项目.我们将分为以下几篇文章来进行详 ...

  5. dbunit进行DAO层Excel单元测试

    DAO层测试难点 可重复性,每次运行单元测试,得到的数据是重复的 独立性,测试数据与实际数据相互独立 数据库中脏数据预处理 不能给数据库中数据带来变化 DAO层测试方法 使用内存数据库,如H2.优点: ...

  6. 基于dbunit进行mybatis DAO层Excel单元测试

    DAO层测试难点 可重复性,每次运行单元测试,得到的数据是重复的 独立性,测试数据与实际数据相互独立 数据库中脏数据预处理 不能给数据库中数据带来变化 DAO层测试方法 使用内存数据库,如H2.优点: ...

  7. Junit结合Spring对Dao层进行单元测试

    关于单元测试,上一次就简单的概念和Mock基础做了,参考:http://60.174.249.204:8888/in/modules/article/view.article.php/74 实际开发过 ...

  8. spring boot 集成 mybatis 单元测试Dao层 控制台报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    最近帮同学做毕业程序,采用后端spring boot + mybatis + H2,将框架搭好进行各层的单元测试时,在dao层就出现了错,如图 于是在网上找各种资料,有的说是xml文件和接口没有一一对 ...

  9. mybatis的dao层和service层的编码设计的配置

    /** 书写pojo类------>dao接口------>resources下建立同路径的dao.xml------>配置applicationContext.xml文件 **/ ...

随机推荐

  1. http://bbs.csdn.net/topics/340046630 dbgrid怎么获取当前记录值

    这根grid无关,当你选中一条记录时,数据集就定位到这条数据上了,你只需要读取数据集中的数据就行了   对我有用[0] 丢个板砖[0] 引用 | 举报| 管理 hongss hongss 本版等级: ...

  2. 《Using Databases with Python》Week1 Object Oriented Python 课堂笔记

    Coursera课程<Using Databases with Python> 密歇根大学 Charles Severance Week1 Object Oriented Python U ...

  3. vmware14克隆后UUID相同的解决方法

    查看网卡 UUID值 [root@localhost network-scripts]# nmcli connection showNAME UUID TYPE DEVICE ens33 cf228d ...

  4. Java 高级-集合框架

    参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...

  5. xmake-vscode插件开发过程记录

    最近打算给xmake写一些IDE和编辑器的集成插件,发现vscode的编辑器插件比较容易上手的,就先研究了下vscode的插件开发流程,并且完成了xmake-vscode插件的开发. 我们先来看几张最 ...

  6. CSS制作垂直口风琴2

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 使用JS提交表单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Angular.js 使用$http的response得到的phone属性为undefined

    这是个坑~ 先说解决方案:把response打印出来找你的属性 记录一下,经验不足,有些东西想当然了,所有错误出现都应该一步步去排查!!!切记想当然的自以为. 源码: js $scope.phone= ...

  9. 前端开发HTML&css入门——盒子模型以及部分CSS样式

    CSS处理网页时,它认为每个元素都包含在一个不可见的盒子里.• 为什么要想象成盒子呢?因为如果把所有的元素都想象成盒子,那么我们对网页的布局就相当于是摆放盒子.• 我们只需要将相应的盒子摆放到网页中相 ...

  10. C#Stopwatch的简单计时 [收藏]

    Stopwatch 类 命名空间:System.Diagnostics.Stopwatch 实例化:Stopwatch getTime=new Stopwatch(); 开始计时:getTime.St ...