建立测试
在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}}