Junit小入门

1.查看你们亲爱的开发大大编写的接口文档,你会和我一样看到如下内容:

/v2/transportRoute/queryList.json  GET
这是一个查询列表的接口

2.使用IDEA打开你需要进行测试的项目,然后通过/v2/transportRoute活着queryList.json进行全局搜索(快捷键command+shift+F),搜索框如下:


点击enter打开对应的controller层代码中。确认当前代码就是需要测试的接口controller层。


3.注意查看当前的文件,如下:

@Controller
@RequestMapping("/v2/transportRoute/")
public class CarrierContractRouteController {
    @Autowired
    private TmsContractRouteAO tmsContractRouteAO;
    @Autowired
    private TmsRouteAO tmsRouteAO; //注入TmsRouteAO这个接口

    /**
     * 列表
     * @param form
     * @param bindingResult
     * @return
     */
    @RolePermission(roles = UserRole.TMS_MANAGER)
    @ResponseBody
    @RequestMapping(value = "queryList.json", method = RequestMethod.GET)
    public BizResult<PageResult<ContractRouteVO>> queryList (@Valid @ModelAttribute TmsRouteListForm form, BindingResult bindingResult) {
        return tmsContractRouteAO.contractList(form);//返回值是tmsContractRouteAO这个接口中的实现类方法contractList的form值
    }
 

查看return中的是tmsContractRouteAO这个接口,选中“tmsContractRouteAO”按快捷键“commnd+触摸板点击”进入这个接口文档中,如下:

public interface TmsContractRouteAO {
    /**
     * 承包路线list
     * @param form
     * @return
     */
    BizResult<PageResult<ContractRouteVO>> contractList(TmsRouteListForm form);
一般接口文档中只放什么接口什么方法的什么入参,不会放真正的实现逻辑,实现逻辑一般存储于同名不同后缀的impl文件中。

4.继续选中TmsContractRouteAO,点击菜单栏[Navigate]-[Test]——[Create New Test。。。],进入需要自动生成那些接口的单元测试用例页面。如下图:


这里因为我们要对ContractListform这个接口进行单元测试,所以选中这个。点击OK,自动生成对应对单元测试文件。

5.编写对应单元测试如下

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:spring/spring-ioc.xml"})
public class TmsRouteAOTest {
    @Autowired
    private TmsContractRouteAO tmsRouteAO;
    private static final Gson gson = new Gson();//JSON转换类,将对象转换成json格式的string

    @Test
    public void contractList() throws Exception {
        TmsRouteListForm form = new TmsRouteListForm();
        form.setPageSize(10);
        form.setPageNo(1);

        form.setTransportType("1");
        //1是大板车,2是救援车,99是厂家包邮
        form.setRouteStatus("1");
        //1正常,2是暂停
        form.setStartCityName("安徽省合肥");
        form.setDestinationCityName("浙江省杭州");
        form.setCarrierName("大头");
        BizResult<PageResult<ContractRouteVO>> result = tmsRouteAO.contractList(form);
        PageResult<ContractRouteVO> pageResult = result.getData();

        System.out.print("数据:" + gson.toJson(pageResult.getResult()));

        Assert.assertTrue(result.isSuccess());

    }

(1)@Autowired是注入允许这个单元测试用例需要的接口

(2)@Test是编写单元测试方法的地方

(3)@RunWith、@WebAppConfiguration、@ContextConfiguration是每个单元测试文件都需要加入的注解,具体内容请百度有一堆就不解释了

(4)测试用例第一件事New一个TmsRouteListForm类实例,取名为form,然后根据接口文档或者查看TmsRouteListForm类的真实传参有哪些内容。然后进行参数传入。

(5)参数传入完毕后打印出传出的结果,然后断言判断

(6)世纪测试其他的接口时可能会出现list中套其他list这样的情况,稍后会给出这样的完整代码

(7)允许Junit时可能会报错“Failed to load ApplicationContext”可能是两个情况,将classpath后面加上*号以扩大搜索范围,另外一个情况是当前允许了2个进程,请先关闭正在允许的进行。

(8)小技巧:查看当前文件所在位置:点击左侧的圈里带jia hao

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值