20181223 定向班-Java 实战 xUnit

1. xUnit的作用

xUnit的组成
xUnit的关键元素

2. Junit & Testng

注解
运行器
结果报告
监听&扩展性

3. 项目实战

开源项目:https://github.com/keterdo/XunitDemo.git
环境要求:java、maven、git、idea

第一个测试用例:

@Test
    public void testUserLogin(){
        Login login = new Login();
        String ac = login.userLogin("zhangsan","123456");
        Assert.assertEquals(ac,"欢迎zhangsan");
    }

创建数据源,提供测试数据

 @DataProvider
    public Object[][] getUsers(){
        return new Object[][]{
                {"zhangsan","123456","欢迎zhangsan"},
                {"lisi","","用户名或密码不能为空"},
                {"","","用户名或密码不能为空"},
                {"admin","123456","欢迎管理员"},
                {"","",""}
        };
    }

测试用例改版,引入数据驱动

@Test(dataProvider = "getUsers", dataProviderClass = LoginParams.class)
    public void testLogin(String name1, String pwd1, String expect1){
        Login login = new Login();
        String ac = login.userLogin(name1,pwd1);
        Assert.assertEquals(ac,expect1);
    }

链路性关联测试

public class ShoppingTest {


    Login login = new Login();
    Shopping shopping = new Shopping();

    @BeforeClass
    public void beforeMethod(){

        login.userLogin("zhangsan","123456");
    }

    @Test(dataProvider = "getProPrice",dataProviderClass = DataParams.class)
    public void testGetPrice(int proId, int expect){
        int price = shopping.getPrice(proId);
        Assert.assertEquals(price,expect);
    }

    @AfterClass
    public void AfterMethod(){
        login.userLogin("","");
    }
}

##作业

Shopping.buys方法的单元测试;
要求:测试覆盖所有不同逻辑分支,并保证每次运行测试都可以正常执行;
使用数据驱动、注解(Before、After)、配置(testng.xml)等。

关闭