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

武进网站建设市场网站自然优化自学

武进网站建设市场,网站自然优化自学,企业如何宣传推广,西安百度推广竞价托管目录 前言#xff1a; 1.什么是Junit 2.Junit相关的技术 2.1注解 2.1.1Test 2.1.2Disable 2.1.3BeforeAll和AfterAll 2.1.4BeforeEach和AfterEach 2.2参数化 2.2.1单参数 2.2.2多参数 2.2.2.1CSV获取参数 2.2.2.2方法获取参数 2.3测试套件 2.3.1通过class运行测…目录 前言 1.什么是Junit 2.Junit相关的技术 2.1注解 2.1.1Test 2.1.2Disable 2.1.3BeforeAll和AfterAll 2.1.4BeforeEach和AfterEach  2.2参数化 2.2.1单参数 2.2.2多参数 2.2.2.1CSV获取参数 2.2.2.2方法获取参数 2.3测试套件 2.3.1通过class运行测试用例 2.3.2通过包运行测试用例 2.4执行顺序 2.5断言 2.5.1断言相等 2.5.2断言不相等 2.5.3断言为空 2.5.4断言不为空 结束语 前言 在上一篇博客中小编主要与大家分享了该如何使用selenium来完成自动化测试那么还有一种是JunitJunit是单元测试的框架而Selenium是自动化测试的框架Selenium是拿着一个技术写自动化测试用例而Junit是拿着一个技术管理已经编写好的测试用例。所以两者之间还是有一定的差别的。接下来咱们就来谈谈Junit中相关的技术吧。 1.什么是Junit Junit是针对Java的一个单元测试框架。 2.Junit相关的技术 2.1注解 在Junit注解主要有 TestDisableBeforeAllAfterAllBeforEachAfterEach 下面我们来给大家一一讲解演示一下。 2.1.1Test 在以前的代码中我们运行代码必须是通过主函数来进行运行的如下所示 代码展示 public class Test02 {public static void main(String[] args) {Test();}private static void Test() {System.out.println(这是一个Test方法);} }结果展示 那么通过Test这样的一个注解我们就可以直接进行运行了Test表示当前这个方法是一个测试用我们通过代码来感受一下。 代码展示 package JunitTest;import org.junit.jupiter.api.Test;public class JunitTest01 {Testvoid Test01() {System.out.println(这是JunitTest里面的Test01);} }这里我们就可以点击旁边的按钮来进行运行了。 注意点击①是运行整个程序的代码。点击②只是运行Test01这一块的代码。 结果展示  在上述中我们需要先去Maven中央仓库里导入依赖步骤入下所示 ①打开Maven中央仓库点击搜索Junit。 ②找到对应的依赖点击复制。注由于我们这里讲解的是Junit5所以小编这里复制的是5.9.1里面的 ③将依赖粘贴到pom文件中。 ④点击刷新Maven。 2.1.2Disable Disable表示直接忽视这块代码。 代码展示 package JunitTest;import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test;public class JunitTest02 {Testvoid Test01() {System.out.println(这是JunitTest02里面的Test01);}Testvoid Test02() {System.out.println(这是JunitTest02里面的Test02);}DisabledTestvoid Test03() {System.out.println(这是JunitTest02里面的Test03);} }如果没有该注释上面的代码执行结果应该是这样的。 但是如果有Disable这个注释的话Test03就会被忽视。 2.1.3BeforeAll和AfterAll BeforeAll是指在所有的测试用例运行之前跑对应的方法。AfterAll是指在所有的测试用例运行之后跑对应的方法。 代码展示 package JunitTest;import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test;public class JunitTest03 {Testvoid Test01() {System.out.println(这是JunitTest03里面的Test01);}Testvoid Test02() {System.out.println(这是JunitTest03里面的Test02);}Testvoid Test03() {System.out.println(这是JunitTest03里面的Test03);}BeforeAllstatic void SetUp() {System.out.println(这是BeforeAll里面的语句);}AfterAllstatic void TearDown() {System.out.println(这是AfterAll里面的语句);} }结果展示 需要注意的是我们要方法前面加上static将他变成静态的也就是类方法。 2.1.4BeforeEach和AfterEach  BeforeEach在每一个测试用例之前跑对应的代码。AfterEach 在每一个测试用例之后跑对应的代码。 代码展示 package JunitTest;import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;public class JunitTest04 {Testvoid Test01() {System.out.println(这是JunitTest04里面的Test01);}Testvoid Test02() {System.out.println(这是JunitTest04里面的Test02);}Testvoid Test03() {System.out.println(这是JunitTest04里面的Test03);}BeforeEachvoid BeforeEachTest() {System.out.println(这是BeforeEach里面的语句);}AfterEachvoid AfterEachTest() {System.out.println(这是AfterEach里面的语句);} }结果展示 2.2参数化 如果我们想要在方法中传入参数会出现什么情况呢如下所示。 代码展示 package JunitTest;import org.junit.jupiter.api.Test;public class JunitTest05 {Testvoid Test01(int i) {System.out.println(i);} }结果展示 你会发现会报错原因是因为我们没有给注册一个参数。那么此时我们该怎么办呢这里就需要我们先在Maven里面导入一个依赖如下所示 将其复制到pom中并刷新。 此时我们就可以使用注解 ParameterizedTest了通过该注解我们就可以实现传递参数了具体的我们看下述操作。 2.2.1单参数 我们通过ValueSource就可以进行单参数的传递了。 代码展示 package JunitTest;import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource;public class JunitTest05 {ParameterizedTestValueSource(ints {1,2,3})void Test01(int num) {System.out.println(num);}ParameterizedTestValueSource(strings {1, 2, 3})void Test02(String number) {System.out.println(number);} }结果展示 2.2.2多参数 2.2.2.1CSV获取参数 如果我们想要进行多参数的传递那又该怎么传递呢 可以通过 CsvSource来进行传递它既可以进行单参数的传递也可以进行多参数的传递。 单参数 代码展示 package JunitTest;import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource;public class JunitTest06 {ParameterizedTestCsvSource({1,2,3})void Test02(String num) {System.out.println(num);}}结果展示 多参数 代码展示 package JunitTest;import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource;public class JunitTest09 {ParameterizedTestCsvSource({1,2, 3,4})void Test01(String str, int num) {System.out.println(str : num);} }结果展示 也可以通过 CsvFileSource来传递。 代码展示 import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvFileSource;public class Test01 {ParameterizedTestCsvFileSource(resources test01.csv)void Test01(int num, String name) {System.out.println(num : name);} }结果展示 注意在上述代码中我们是通过以下的方式来创建一个.csv文件的。 然后就在文件中进行填写数据即可。 2.2.2.2方法获取参数 除了上述的三种方式之外我们还可以通过MethodSource来传递参数。 代码展示 package JunitTest;import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource;import java.util.stream.Stream;public class JunitTest08 {public static StreamArguments Generator() {return Stream.of(Arguments.arguments(1,张三));}ParameterizedTestMethodSource(Generator)void Test01(String num, String name) {System.out.println(num : name);} }结果展示 2.3测试套件 2.3.1通过class运行测试用例 这里我们先在java文件夹中新建两个.class类。 代码展示 代码① ​​​​​​​代码② import org.junit.jupiter.api.Test;public class Test04 {Testvoid Test04() {System.out.println(Test04);} }代码③ import org.junit.platform.suite.api.SelectClasses; import org.junit.platform.suite.api.Suite;Suite //通过class测试用例运行 SelectClasses(value {Test03.class,Test04.class}) public class RunSuite { }结果展示:    2.3.2通过包运行测试用例 在上述代码中我们是通过class来运行的这里我们来通过包来运行。 代码展示 import org.junit.platform.suite.api.SelectPackages; import org.junit.platform.suite.api.Suite;Suite //通过包来运行测试用例 SelectPackages({Test1,Test2}) public class RunSuite2 { }结果展示 2.4执行顺序 我们先来看下面这个代码的执行顺序。 代码展示 package JunitTest;import org.junit.jupiter.api.Test;public class JunitTest11 {Testvoid A() {System.out.println(A);}Testvoid B() {System.out.println(B);}Testvoid C() {System.out.println(C);}Testvoid D() {System.out.println(D);} }结果展示 如果我们现在换一下代码块之间的顺序结果会是什么呢 代码展示 package JunitTest;import org.junit.jupiter.api.Test;public class JunitTest11 {Testvoid D() {System.out.println(D);}Testvoid A() {System.out.println(A);}Testvoid C() {System.out.println(C);}Testvoid B() {System.out.println(B);} }结果展示  你会发现即是是换了代码的顺序结果还是一样的没有变那么我们该怎么让代码的顺序变动呢 这里我们可以借助TestMethodOrderer来指定执行的顺序具体使用请看代码。 代码展示 package JunitTest;import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder;TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class JunitTest11 {Order(1)Testvoid D() {System.out.println(D);}Order(2)Testvoid A() {System.out.println(A);}Order(3)Testvoid C() {System.out.println(C);}Order(4)Testvoid B() {System.out.println(B);} }结果展示 通过上述的方法我们就可以让代码来按照我们指定的顺序来进行执行了。 2.5断言 如果我们需要对测试用例进行预期的判断判断我们的结果是不是和我们的预期相符那么此时我们就可以使用断言这样的操作来进行判断这里我们具体看下面的代码案例。 2.5.1断言相等 代码展示 package JunitTest;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource;public class JunitTest12 {ParameterizedTestValueSource(ints {1})void Test01(int num) {System.out.println(num);//在这里判断我们接收到的参数是不是1Assertions.assertEquals(1,num);} }结果展示 我们可以看到结果展示的是1那就说明我们的预期结果与实际结果是相符的。  2.5.2断言不相等 代码展示 package JunitTest;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource;public class JunitTest13 {ParameterizedTestValueSource(ints {1})void Test01(int num) {System.out.println(num);//在这里判断接收到的参数是不是与预期的不相符也就是断言不相等Assertions.assertNotEquals(1,num);} }结果展示 注意这里是预期的如果与实际的相符的话就会报错 2.5.3断言为空 断言为空就是判断接收到的值是不是空值。 代码展示 package JunitTest;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource;public class JunitTest14 {ParameterizedTestValueSource(ints {1})void Test01(int num) {System.out.println(num);//判断断言是不是空值Assertions.assertNull(num);} }结果展示 上述代码的结果表明接收到的值不为空。 2.5.4断言不为空 断言不为空就是判断如果断言是空的话就报错不为空才是正确的。 代码展示 package JunitTest;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test;public class JunitTest15 {Testvoid Test01() {String str 1;Assertions.assertNotNull(str);System.out.println(str);} }结果展示 上述结果表明str不是空值。 结束语 希望这节对大家学习自动化测试有一定的帮助下节中小编将重点给大家介绍一下Junit里的一些操作想要学习的同学记得关注小编和小编一起学习吧如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津在此小编先谢过各位大佬啦
http://wiki.neutronadmin.com/news/101674/

相关文章:

  • 一键设计logo南宁seo标准
  • 有哪几种语言做的网站东莞娱乐场所开放通知
  • 公司网站推广是做什么微信微商城怎么开通
  • 驻马店行业网站建设源码python基础教程答案
  • 上海微网站企业管理咨询有限公司经营范围
  • 广州app网站开发如何建自己的个人网站
  • 网站内链结构是什么意思网络推广平台cpa
  • 网站建设策划案怎么写网站建设方案书 百度文库
  • 河南股票配资网站建设wordpress图片库插件
  • 设计公司给公司做网站用了方正字体嘉兴做微网站设计
  • 企业网站服务器建设方法上海优化网站排名
  • 为什么选择网站来做论文题目常见的网络推广平台
  • 郑州专业网站推广优化公司国内优秀网页网站
  • 自助建网站工具个人网站用主机做服务器
  • 山东省示范校建设网站建立网站的英文短语
  • 云阳一平米网站建设东莞做公众号的网站
  • 品牌案例网站长春seo整站优化
  • 做网站的好项目棋牌类网站设计建设
  • 网站备案负责人幕布照网站建设合同的验收表
  • 宽屏大气企业网站源码有没有专做自驾游的网站
  • 网站建设长期待摊费用如何建设高校网站
  • 专业微网站电话网站建设收费标准教程
  • 网站开发网校市政浙江建设培训中心网站
  • 网站开发跟app开发的差别钢材网站模板
  • 好点子网站建设wordpress部署到tomcat
  • 站长之家ping深圳公司网站如何设计
  • 网站建设的经验之谈简述网站的建站具体流程
  • 企业电子商务网站建设规划方案广告公司业务推广
  • 建设营销网站要什么wordpress商用收费不
  • 网站的黏度广州海珠区房价