java 测试 (junit+ junit 断言 + postman)

时间:2022-06-23 05:08:50

    实际开发中,除了开发,我想测试也是必不可少的一环吧。从简单的@Test 、main 方法测试 到 页面测试 ,断言,postman。 bug是无处不在,随时发生的事,高效率的调试、检测可以节省大量的开发时间。 思路一确定,敲代码也就花不了多少时间,可是敲完代码后的调试,检测往往会花费许多时间。 甚者除了页面调试(通过jsp,HTML页面带参过来到后台,后台返回参数给页面) 其他的一点都不会。记得去年的时候,公司做个金融产品,是跟外部的团队合作一起开发的。由于前端页面是由外部团队提供给我们的,所以有时候他们还未提供给我们页面的时候,我们就自己根据接口文档等把后台业务相关逻辑处理好。 某天上午,公司一个新来的新手跑过来问我:XXX, 代码写完啦,没有页面怎么测啊。 我当时就感到奇怪,没有页面就不能测吗? 我反问了他一句, 他请我过去帮忙教教他,我也就回了句自己去百度就没理了。那时候想着就是虽然测试不是我们的主业,有测试,可是我们开发人员自测的手段还是要有一些的吧。刚好现在已经开始写博客了,今天也有空,也就写篇相关的博客,记录记录

    阅读此篇博客前阅读本人的junit 常用注解 + junit 断言详解 + junit 运行(eclipse + IDEA)

    1. @Test , main 方法

    这个是最简单测试了,一般用于测试一些方法,实现,比如你写了个方法,要想看看能不能用,写了一个算法,想看看对不对,你就可以通过这些方法来测试。

    2. junit 常用注解 + junit 断言 Assert(请结合junit 常用注解 + junit 断言详解这篇博客 理解):

//junit 测试(包括断言,测试集等)
public class Test3 {


 /*   @BeforeClass
    public static void beforeClass(){
        System.out.println("beforeClass");
    }


    @Before
    public void before(){
        System.out.println("before");
    }*/

    @Test(timeout = 10)
    public void test1(){
        Assert.assertEquals(1,1);
//            Assert.fail("fail");
        }

    @Test(expected = ArithmeticException.class)
    public void test2(){
        boolean flag = true;
        Assert.assertTrue(flag);
        Assert.assertEquals(1,1);
    }


        @Ignore
    public  void ignore(){
            System.out.println("ignore");
        }


 /*   @After
    public void after(){
        System.out.println("after");
    }

    @AfterClass
    public static void afterClass(){
        System.out.println("afterClass");
    }
*/

}

  3.junit 对SpringMVC 的Controller  进行测试:(注意这是基于ssm 框架 web 工程 的spring MVC,像spring boot 集成的是不一样的):

// 使用spring 测试集测试
@RunWith(SpringJUnit4ClassRunner.class)
// 配置上下文配置
@ContextConfiguration("classpath*:spring-mvc.xml")
public class TestController {

    // 模拟request,response
    private MockHttpServletRequest request;
    private MockHttpServletResponse response;

    // 注入loginController
    @Autowired
    private LoginController loginController ;

    // 执行测试方法之前初始化模拟request,response
    @Before
    public void setUp(){
        request = new MockHttpServletRequest();
        request.setCharacterEncoding("UTF-8");
        response = new MockHttpServletResponse();
    }

    /**
     * @Title:testLogin
     * @Description: 测试用户登录
     */
    @Test
    public void testLogin() {
        try {
            request.setParameter("userName", "admin");
            request.setParameter("password", "2");
            Assert.assertEquals("login",loginController.loginTest(request,response)) ;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}

  4. postman  自测 (postman 一般是用于自测 restful 类型的接口, 用于自测前后端对接调用的接口等)(这是postman的基础功能 ):

    请参考 https://blog.csdn.net/fxbin123/article/details/80428216  个人认为讲的较详细了

 

  在此,希望此篇博客能帮助到一些人。有不足之处,有问题的话可以博客上Q我,看到就会回复

 

  参考于https://blog.csdn.net/fxbin123/article/details/80428216