出现的问题
1、Junit单元测试代码(这里没有问题)
2、 控制台出现的效果:
3、数据库中的数据没有变化(这里是我之前插入的)
解决方案:
1、junit 单元测试事务会自动回滚。通过 @Rollback(false) 注解来关闭回滚,默认是true,事务会回滚。false时事务不会回滚,数据会写到数据库中。
2、再看控制台(依旧是正确的)
3、加了回滚之后,我们来看一下数据库的数据(很明显,数据加进去了)
附上单元测试完整代码
import com.sou.activity.order.dao.OrderDao;
import com.sou.domain.Order;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.transaction.Transactional;
import java.util.Date;
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class Test {
@Autowired
private OrderDao orderDao;
@org.junit.Test
@Rollback(false)
public void testOrder(){
Order order = new Order();
order.setOrder_startTime(new Date().getTime());
order.getWork().setWork_id(7);
order.getUser().setUser_id(5);
orderDao.addOrder(order);
}
}