当前位置: 首页 > news >正文

潍坊制作网站的公司爱站权重

潍坊制作网站的公司,爱站权重,爬取wordpress文章,韩国风格网站php源码目录 1、认识JUnit 2、Junit中常见的注解 1、Test 2、Disabled 3、BeforeAll和AfterAll 4、BeforeEach和AfterEach 5、 ParameterizedTest:参数化 6、order 3、断言 1、断言相等【Assertions.assertEquals(预期,比较值)】;相等测试通…

目录

1、认识JUnit

2、Junit中常见的注解 

1、@Test

 2、@Disabled

 3、@BeforeAll和@AfterAll

4、@BeforeEach和@AfterEach

5、 @ParameterizedTest:参数化

 6、@order

3、断言 

1、断言相等【Assertions.assertEquals(预期,比较值)】;相等测试通过

2、断言不相等(Assertions.assertNotEqals(预期,比较值));不相等则让测试通过 

 3、断言为空:Assertions.assertNull(值)

4、断言不为空:Assertions.assertNotNull(值) 

4、测试套件 

1、指定一组要执行的测试类(@SelectClasses)

 2、指定一个包执行测试用例(@SelectPackages)


1、认识JUnit

JUnit是针对Java编程语言的最流行的单元测试框架,用于庇阿涅和运行测试,提供注释来识别测试方法,提供断言来测试预期结果,提供测试运行来运行测试。JUnit测试可以自动运行并检查自身结果并提供即时反馈。

Selenium和Junit的关系

Selenium是自动化测试框架,JUnit是单元测试框架

拿着一个技术写自动化测试测试用例(Selenium3)

拿着一个技术管理已经编写好的测试用例(JUnit5)

2、Junit中常见的注解 

我们在这里主要介绍JUnit5中的注解,JUnit版本,其中的注解也有所不同。在正常的类中,如果我们想要运行一个方法,需要我们在main方法中调用这个方法,但是现在我们在方法上添加下面的注解之后,就可以将该方法运行起来。

注解说明
@Test表示当前的这个方法为一个测试用例
@Disabled标识禁用的测试类或者测试方法
@BeforeAll在所有的测试方法之前执行,并只会执行一次
@BeforeEach在每个测试方法之前执行
@AfterAll在所有的测试方法执行完成之后执行,只会执行一次
@AfterEach在每个测试方法之后执行
@ParameterizedTest标识参数化测试方法
@order设置测试方法的执行顺序

1、@Test

用来表示当前这个方法为一个测试用例。

    @Testvoid test01(){System.out.println("这是JunitTest中的Test01");}

 2、@Disabled

标识禁用的测试类或者测试方法

public class JunitTest {@Testvoid test01(){System.out.println("这是JunitTest中的Test01");}@Disabledvoid test02(){System.out.println("这是JunitTest中的Test02");}
}

 3、@BeforeAll@AfterAll

因为这两个注解是正对整个类中的方法的,所以需要给这些方法用static修饰

@BeforeAll:在所有的测试方法执行之前执行,只会执行一次

@AfterAll:在所有的测试方法执行之后执行,之后执行一次

public class JunitTest {@Testvoid test01(){System.out.println("这是JunitTest中的Test01");}@Testvoid test02(){System.out.println("这是JunitTest中的Test02");}@AfterAllstatic void TearDown(){System.out.println("这是AfterAll的语句");}@BeforeAllstatic void SetUp(){System.out.println("这是BeforeAll里面的语句");}
}

 这两注解的使用场景,比如在做UI自动化的时候,通常情况下,我们会将创建驱动、打开网页这些操作放到BeforeAll里面,将关闭浏览器放到AfterAll中。

4、@BeforeEach@AfterEach

 @BeforeEach:在每个测试方法执行之前执行

@AfterAll:在每个测试方法执行之后执行

public class JunitTest {@Testvoid test01(){System.out.println("这是JunitTest中的Test01");}@Testvoid test02(){System.out.println("这是JunitTest中的Test02");}@AfterEachvoid TearDown(){System.out.println("这是AfterEach的语句");}@BeforeEachvoid SetUp(){System.out.println("这是BeforeEach里面的语句");}
}

5、 @ParameterizedTest:参数化

🍂单参数

1️⃣单参数使用@ValueSource获取数据

    @ParameterizedTest@ValueSource(strings = {"1","2","3"})void Test03(String num){System.out.println(num);System.out.println("-----------------");}

2️⃣单参数@CsvfileSource(resources= "test01.csv")获取参数 。

    @ParameterizedTest@CsvFileSource(resources = "test01.csv")void Test06(String name){System.out.println(name);}

 这个方法的执行次数根据.csv文件中数据行数来执行。

🍂多参数获取,

public static Stream<Arguments> Generator() {return Stream.of(Arguments.arguments(1,"张三"),Arguments.arguments(2,"李四"),Arguments.arguments(3,"王五"));}@ParameterizedTest@MethodSource("Generator")void test04(int num,String name){System.out.println(num+":"+name);}

 6、@order

🍂按照程序员指定的顺序执行

@order注解是Junit5中用来指定测试方法的执行顺序的,@order搭配@TestMethodOrder(MethodOrder.OrderAnnotation.class)【指定测试方法按照程序员设定的顺序执行】来使用。

可以看到上图中的方法执行顺序,并没有按照方法的编写顺序执行。这里的测试方法在没有设置执行顺序的时候,这些测试方法的执行顺序不一定是按照从上到下的顺序执行的,这里还是要看Junit5内部是如何设计测试方法的执行顺序的。

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest1 {@Order(1)@Testvoid A(){System.out.println("这是JunitTest的A");}@Order(2)@Testvoid test01(){System.out.println("这是JunitTest中的Test01");}@Order(3)@Testvoid test02(){System.out.println("这是JunitTest中的Test02");}@Order(4)@Testvoid B(){System.out.println("这是JunitTest的B");}}

 

 可以看到我们添加了@TestMethodOrder(MethodOrder.OrderAnnotation.class)注解和@Order注解,现在这些测试方法按照我们设定的顺序进行执行了。

🍂随机顺序执行测试方法

使用@TestMethodOrder(MethodOrder.Random.class)注解,来进行随机的执行顺序,这个时候就不需要再测试方法上添加@Order注解来指定执行顺序了。

@TestMethodOrder(MethodOrderer.Random.class)
public class JunitTest1 {@Testvoid A(){System.out.println("这是JunitTest的A");}@Testvoid test01(){System.out.println("这是JunitTest中的Test01");}@Testvoid test02(){System.out.println("这是JunitTest中的Test02");}@Testvoid B(){System.out.println("这是JunitTest的B");}

3、断言 

断言方法说明
assertEquals(expected,actual)验证两个数据是否相等,相等测试通过
assertNotEquals(expected,actual)验证两个数据是否不相等,不相等测试通过
assertNotNull(expected,actual)验证对象是否为不为空,不为空测试通过
assertNull(expected,actual)验证对象是否为空,为空测试通过

1、断言相等【Assertions.assertEquals(预期,比较值)】;相等测试通过

    @ParameterizedTest@ValueSource(ints = {1})void Test03(int num) {Assertions.assertEquals(1, num);}

 

2、断言不相等(Assertions.assertNotEqals(预期,比较值));不相等则让测试通过 

    @ParameterizedTest@ValueSource(ints = {1})void Test03(int num) {Assertions.assertNotEquals(2, num);}

 

 3、断言为空:Assertions.assertNull(值)

    @Testvoid Test4(){String str = null;Assertions.assertNull(str);}

4、断言不为空:Assertions.assertNotNull(值) 

    @Testvoid Test4(){String str = "zhangsan";Assertions.assertNotNull(str);}

4、测试套件 

在Junit5中,@Suite注解用于将多个测试类组合成一个测试套件。测试条件是一种组织测试用例的方式,可以将多个测试类组合在一起执行。这对于在项目中有多个相关的测试类是非常有用,可以方便的运行所有的相关测试用例。

使用@Suite注解时,需要将注解添加到一个测试类上,该类将作为测试套件的主类,用于组织和执行其他测试类。

1、指定一组要执行的测试类(@SelectClasses)

@SelectClasses注解用于选择要运行的测试类,它允许指定一组类,JUnit将仅运行这些类中的测试用例。这些类的执行顺序时按照这些类的添加顺序执行。

//设置该类为套件测试的主类
@Suite
//选择要运行的测试类
@SelectClasses({JunitTest.class,JunitTest1.class})
public class RunSuite {
}

 2、指定一个包执行测试用例(@SelectPackages)

在Junit5中,@SelectPackages注解用于选择要运行测测试包,它允许指定一个或多个包,Junit将仅运行这些包中的测试用例。

package Test08;import org.junit.jupiter.api.Test;public class Test07 {@Testvoid Test007(){System.out.println("Test08 Test07 Test007");}
}
package Test09;import org.junit.jupiter.api.Test;public class Test09 {@Testvoid Test01(){System.out.println("Test09 Test09 Test01");}
}
import org.junit.platform.suite.api.SelectPackages;
import org.junit.platform.suite.api.Suite;
//设置该类为套件测试的主类
@Suite
//选择要运行的测试包
@SelectPackages(value = {"Test09", "Test08"})
public class RunSuite {
}

http://www.tj-hxxt.cn/news/78329.html

相关文章:

  • 知名网站制作公司青岛分公司郑州做网站的专业公司
  • 洛阳新光建站百度下载安装app
  • 网站建设婚恋交友p站关键词排名
  • 做pc端网站报价seo招聘职责
  • 微山网站建设多少钱西安百度公司开户
  • 上海网站建设哪家活动营销
  • 手机网站设置方法郑州关键词排名顾问
  • 庐山网站建设网络推销
  • 公司网站建站要多少钱一年如何软件网站优化公司
  • wordpress 微信 商城推广优化网站
  • wordpress 主机安装seo从入门到精通
  • 政府网站功能分析 选做网络热词2023
  • 网易代理暴雪长沙百度快速优化
  • 辽宁人工智能建站系统软件网站排名查询站长之家
  • 宁波自适应网站建设下载百度网盘app
  • 三合一网站建设什么意思什么是互联网销售
  • 建设交友网站的好处百度录入网站
  • 深圳网站制作公司 讯免费查权重工具
  • 大良营销网站建设案例北京seo网站优化培训
  • 网站如何做关键词优化百度竞价广告收费标准
  • js网站建设网页优化包括什么
  • 物联网今天正式开网优化神马排名软件
  • 固始做网站的公司免费二级域名建站
  • 网站图片动态换名世界500强企业名单
  • 做网站的规范搜索排名广告营销怎么做
  • 惠州seo推广外包谷歌seo代运营
  • iis 网站目录权限公司网站建设推广
  • 网站淘宝客 难做竞价推广招聘
  • 做数据可视化的网站百度seo排名优化系统
  • 绵阳网站建设报价辅导班培训机构