建立测试

在KillOneDao类里使用ctrl+shift+T建立测试类

加入下面注解,注入spring配置:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml"})
package com.jimo.dao;

import com.jimo.entity.KillOne;
import org.junit.Test;
import org.junit.runner.RunWith;
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 root on 17-5-21.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml"})
public class KillOneDaoTest {

    @Resource
    private KillOneDao kd;

    @Test
    public void reduceNumber() throws Exception {
        System.out.println(kd.reduceNumber(1000,new Date()));
    }

    @Test
    public void queryById() throws Exception {
        KillOne k = kd.queryById(1000);
        System.out.println(k);
    }

    @Test
    public void queryAll() throws Exception {
        List<KillOne> ks = kd.queryAll(0, 100);
        for (KillOne k : ks) {
            System.out.println(k);
        }
    }

}

错误

对与有多个参数会报如下错误:无法绑定

public List<KillOne> queryAll(int offset, int limit);
org.apache.ibatis.binding.BindingException: Parameter 'offset' not found. Available parameters are [0, 1, param1, param2]

解决:

public List<KillOne> queryAll(@Param("offset") int offset, @Param("limit") int limit);

测试SuccessKilled

修改successKilled.xml,让插入的state默认为0,成功

<insert id="insertSuccessKilled">
        <!--ignore 可以在主键重复插入时不报错,返回0-->
        INSERT ignore INTO success_killed (kill_id,user_phone,state)
        VALUES (#{killId},#{userPhone},0)
    </insert>

同时修改Dao接口:需要两个才能确定一个秒杀详情

public SuccessKilled queryByIdWithKillOne(@Param("killId") long killId, @Param("userPhone") long userPhone);

测试类:

package com.jimo.dao;

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

import javax.annotation.Resource;

import static org.junit.Assert.*;

/**
 * Created by root on 17-5-21.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml"})
public class SuccessKilledDaoTest {
    @Resource
    private SuccessKilledDao kd;

    @Test
    public void insertSuccessKilled() throws Exception {
        System.out.println(kd.insertSuccessKilled(1000, 13300000000L));
    }

    @Test
    public void queryByIdWithKillOne() throws Exception {
        System.out.println(kd.queryByIdWithKillOne(1000, 13300000000L));
    }

}

重复插入是不行的,因为有联合主键

查询结果:

SuccessKilled{killId=1000, userPhone=13300000000, state=0, createTime=Sun May 21 16:46:26 CST 2017, 
killOne=KillOne{killId=1000, name='一元秒杀鸡蛋10个', number=99, startTime=Sun May 21 16:31:29 CST 2017, 
endTime=Mon May 22 00:00:00 CST 2017, createTime=Sun May 21 10:09:24 CST 2017}}

results matching ""

    No results matching ""