Junit4学习笔记二

智能车竞赛循迹控制:基于状态机的直道、弯道、十字路口处理策略 在嵌入式系统与自动控制领域,PID控制算法是实现精确运动控制的基础。其原理是通过比例、积分、微分三个环节的线性组合,对系统误差进行实时校正,从而实现对目标值的快速、稳定跟踪。这项技术的核心价值在于为各类自动控制系统提供了稳定、可靠且易于实现的解决方案,广泛应用于机器人、无人机、工业自动化等场景。在智能车循迹这类特定应用中,赛道环境复杂多变,单一的PID控制器难以应对直道、弯道、十字路口等不同赛道元素的控制需求。此时,有限状态机(FSM)作为一种高效的**决策框架**,能够根据实时感知的赛道特征(如边线曲率、 阅读详情

小结一下,Junit4套件测试.

在com.dadao.util包中有两个编写好的java的程序.BetsFilter.java,OddsFilter.java

BetsFilter.java代码如下:

  1. package com.dadao.util;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class BetsFilter {
  5.     public String formatBets(String bets){
  6.         String result=null;
  7.         String filtedFirstBets = bets.replace("-", "/");
  8.         String oldstr = ".0";
  9.         result=filtedFirstBets.replace(oldstr, "");
  10.         String regex = "((//d//.//d)0).*";
  11.         Matcher matcher = Pattern.compile(regex).matcher(result);
  12.         if(matcher.matches()){
  13.             result = result.replaceAll(matcher.group(1), matcher.group(2));
  14.         }
  15.         return result;
  16.     }
  17. }

OddsFilter.java代码如下:

  1. package com.dadao.util;
  2. public class OddsFilter {
  3.     public boolean isNeedOdds(Float oddsAteam, Float oddsBteam,double need) {
  4.         float oddsA = oddsAteam.floatValue();
  5.         float oddsB = oddsBteam.floatValue();
  6.         if (oddsA < 0) {
  7.             oddsA = (Math.abs(oddsA) + 1) / Math.abs(oddsA) - 1;
  8.         }
  9.         if (oddsB < 0) {
  10.             oddsB = (Math.abs(oddsB) + 1) / Math.abs(oddsB) - 1;
  11.         }
  12.         if (oddsA * oddsB >= need) {
  13.             return true;
  14.         } else
  15.             return false;
  16.     }
  17. }

测试类BetsFilterTest代码如下:

  1. package com.dadao.util;
  2. import org.junit.Assert;
  3. import org.junit.BeforeClass;
  4. import org.junit.Test;
  5. public class BetsFilterTest {//注意命名规范,较好的命名方式应该是要测试的类名后面加上"Test"
  6.     private static BetsFilter betsFilter;
  7.     @BeforeClass //该方法和@AfterClass标注的方法一样,必须是静态的.全局只执行一次
  8.     public static void initBetsFilterTest(){//
  9.         betsFilter = new BetsFilter();
  10.     }
  11.     @Test 
  12.     public void testFormatBets(){//虽然测试方法的名字可以随便取,但要养成好的代码编写习惯,见名知意.
  13.         String result = betsFilter.formatBets("2.50-3.0");
  14.         Assert.assertEquals("2.5/3",result);
  15.         String result2 = betsFilter.formatBets("0-0.5");
  16.         Assert.assertEquals("0/0.5",result2);
  17.     }
  18.     @Test(expected = java.lang.NullPointerException.class )//如果未抛出NullPointerException,则失败
  19.     public void testFormatBets2(){
  20.         betsFilter.formatBets(null);
  21.     }
  22.     @Test 
  23.     public void testFormateBets3(){
  24.         String result = betsFilter.formatBets("");
  25.         Assert.assertEquals("", result);
  26.     }
  27.     @Test(timeout = 1)//如果被测试的代码执行超过一豪秒,则失败.
  28.     public void testFormatBets4(){
  29.         betsFilter.formatBets("2.50-3.0");
  30.     }
  31. }

测试类OddsFilterTest代码如下:

  1. package com.dadao.util;
  2. import org.junit.Assert;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. public class OddsFilterTest {
  6.     private  OddsFilter oddsFilter; 
  7.     @Before
  8.     public void initOddsFilterTest(){
  9.         oddsFilter = new OddsFilter();
  10.     }
  11.     @Test
  12.     public void testIsNeedOdds(){
  13.         boolean b = oddsFilter.isNeedOdds(new Float(-0.88), new Float(0.9), 1.0);
  14.         Assert.assertEquals(true,b);
  15.     }
  16. }

下面编写一个套件测试类,代码如下:

  1. package com.dadao.util;
  2. import org.junit.runner.RunWith;
  3. import org.junit.runners.Suite;
  4. import org.junit.runners.Suite.SuiteClasses;
  5. @RunWith(Suite.class)//绑定一个叫做 Suite 的套件运行器
  6. @SuiteClasses({BetsFilterTest.class,OddsFilterTest.class}).//添加测试类
  7. public class UtilSuiteTest {
  8. }
Xilinx系ZYNQ学习笔记(一)Vivado使用说明 vivado使用学习 阅读详情

相关推荐

Kali Linux实战:用Impacket的secretsdump.py快速提取Windows域控哈希(附避坑指南)

本文详细介绍了如何在Kali Linux中使用Impacket的secretsdump.py脚本快速提取Windows域控哈希,包括环境准备、原理剖析、实战操作及常见问题解决方案。特别适合CTF竞赛和网络信息安全爱好者学习,提升渗透测试效率。

weixin_33670786的博客 410

Junit4学习笔记二——参数化测试

   参数化测试适用于,测试函数根据不同的传参,有很多的分支或者参数有许多特殊值。如果采用多个方法进行测试,除了传入参数不同,其他代码都相同,这时采用参数化测试的方法,就可以避免写大量重复的代码。 采用参数化测试的步骤: 1.为测试类制定特殊运行器 org.junit.runners.Parameterized     在测试类上方标注@RunWith(Parameterized.cl...

Adla_bin的专栏 939

【计算机视觉】基于复杂环境下的车牌识别

本文针对复杂环境下(光照变化、车牌变形、噪声干扰)的车牌识别问题,提出了一套完整的优化方案。通过四个核心环节进行改进:1)采用CLAHE、同态滤波等技术优化光照处理;2)使用边缘检测和透视变换应对车牌变形;3)结合中值滤波和暗通道去噪算法消除干扰;4)改进字符分割与识别方法。文章提供了详细的Python实现代码,展示了从预处理到字符识别的完整流程,并通过多策略融合显著提升了复杂场景下的识别准确率。实验结果表明,该方法能有效应对各类复杂环境挑战,为实际应用提供了可靠解决方案。

2401_84149564的博客 1626

JUnit4快速入门学习笔记(二)

1.调整上篇文章目录结构,新建source folder:test,test下包名与src下保持一致 2.学会自动生成测试方法: 单击需要测试的类(calculate.java)–>new->other->JUit Test Case->next选择要测试的方法->finish ...

芳草萋萋鹦鹉洲哦 125

带隙基准源要点

要点: 负反馈>正反馈;电流镜匹配;双极型晶体管匹配;电阻匹配; 经过R0的电流????????????=????????????????−????????????????????????=∆????????????????????i_R0=(〖VBE〗_1-〖VBE〗_2)/R_0 =∆VBE/R_0 经过R1的电流????????????=i_R1= ????????????????????VBE/R_1 零温电流I = ∆????????????????????∆VBE/R_0 +

HI_WALLE的博客 2263

2016域控服务器迁移,WIN Server2016 域服务器迁移出错

各位大神: 这几天刚安装了一台windows server 2016做域迁移时出现错误:1、默认SYSLOG、NETLOGON共享文件重启后自动取消共享,即使手动打开后依然会出现自动取消2、组策略中编辑策略时出现以下报错 policys.png (19.29 KB)2017-2-7 13:52操作此动作之前可以访问本机的共享(NETLOGON)3、使用DCDIAG检测多个报错:C:\Use...

weixin_31833039的博客 3314

JUnit4学习笔记(二)(尚学堂)

测试人员测的是系统开发完后,功能和性能能不能满足要求,而不是测某个具体的方法。 assertEquals方法中第一个参数是自己期望的值。 Keeps the bar green to keep the code clean. 对于没有返回值的方法,只要测试操作的结果对不对就行了,没有必要非得用返回值。 assertTrue("z too small", z > 10);第一

hjf19790118的专栏 986

CANoe/CANalyzer新手必看:从零配置到报文分析的完整流程(附B站官方教程实操)

本文为CANoe/CANalyzer新手提供从零配置到报文分析的完整流程指南,涵盖硬件连接、工程配置、报文捕获及信号级分析等关键步骤。通过详细的实操案例和B站官方教程,帮助工程师快速掌握汽车电子总线分析工具的核心应用,提升诊断效率与通信系统理解。

y7z8a的博客 771

JUnit 4.7学习笔记(二)——BlockJUnit4ClassRunner分析

前面提到过Junit的核心之一就是Runner,它是具体跑测试用例的人。自然我们就要先分析这个东西。通过Runner的层级视图我发现了不少新东西。不过我知道4.1版本的Runner核心就是org.junit.internal.runners.JUnit4ClassRunner这个类,所以我就先进去看看它的变化。结果发现它已经被deprecated了。而现在4.7取而代之的是我们上一次提到过的org...

懒猫之家 385

高通平台N4单路输入的720P相机预览

N4的一路720P Camera作为MIPI摄像头使用

llw21680的专栏 165

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1845

Java测试单元JUnit4 imooc学习笔记(二)

一.JUnit使用详解 1.1新建source folder 为了方便测试代码,我们需要新建测试类,测试类可以创建于新建的source folder文件夹中。这样,在代码测试阶段方便测试,在代码发布阶段只需删除掉source folder中的全部测试类即可。 具体操作步骤:在src文件夹右键单击–>New–>Source Folder–>将其命名为test 可以将测试类放入到s...

Kevin.wang 201

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Junit 4 学习笔记(二、assert方法的分类)

1、assertTrue/False([String message,]boolean condition); 用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反; ...

chenshi2812的博客 148

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Junit 4学习笔记(二)打包、参数化、规则、超时和异常等测试

导入jar文件 junit-4.12.jar //junit-4.11之后需要自己导入该包 hamcrest-core-1.3.jar 一、套件测试(打包测试) 测试套件意味着捆绑几个单元测试用例并且一起执行他们。在 JUnit 中,@RunWith和@Suite注释用来运行套件测试。 当一个类被注解为@RunWith时, JUnit 将调用注解中的Suite,以便运行测试类,...

Vaingloryss的博客 559

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JUnit4学习笔记(二):参数化测试与假定(Assumption)

一、一个简单的测试 编写一个只有一种运算的计算器:   public class Calculator { public static double divide(int dividend, int divisor) { return dividend / divisor; } }  为这个方法编写测试:   public class Cal...

haibin369 326

JUnit 5和JUnit 4比较

JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。 1. JUnit 5 vs JUnit 4 - 注释 两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。 特征 JUNIT 4 JUNIT 5 声明一种测试方法 ...

javaZhong的博客 3万+

junit4学习笔记

太久没有用junit写测试了,前几天被一个面试官问的自己很傻,所以特意在此重新学习和总结一下使用junit做测试目的是尽量早的发现程序的bug,一个bug被隐藏的时间越长,修复这个bug的代价就越大。Junit简介:    Junit最初是由Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),为单元测试(Unit Test)的支持框架。用来编写和执行重覆性的测试。即所谓白盒测试。它包括了以下的特性:对预期结果作断言提供测试装备的

Macroli 3万+

【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解

​ 前面我们介绍了白盒测试方法,后面我们来介绍一下Junit 4,使用的是eclipse(用IDEA的小伙伴可以撤了)

weixin_67553250的博客 4126

Junit4测试执行

在 JUnit 4 中可以将多个测试类组织在一起创建测试套件,批量运行多个测试类。JUnit 4 测试套件中不仅可以包含基本的测试类,还可以包含其它的测试套件,能非常方便地对不同模块的单元测试代码进行分层管理。如果存在多个测试套件,需要注意测试套件之间不能有循环包含关系,否则会出现死循环的情况。在使用 JUnit 执行测试用例时,有些测试用例需要按一定的顺序来执行。那么。JUnit 中的测试方法是按照什么顺序来执行的呢?

haobabiu的博客 3035

JUnit 4和JUnit 5区别

特征 JUNIT 4 JUNIT 5 声明一种测试方法 @Test @Test 在当前类中的所有测试方法之前执行 @BeforeClass @BeforeAll 在当前类中的所有测试方法之后执行 @AfterClass @AfterAll 在每个测试方法之前执行 @Before @BeforeEach 每种测试方法后执行 @After @AfterEach 禁用测试方法/类 @Ignore @Disa

渣渣 6257

JUnit 4与JUnit 5的差异详解

在进行`SpringBoot`项目单元测试时,发现有时候给类打上 `@SpringBootTest`注解就能运行项目,但有时候需要`@RunWith(SpringRunner.class)`和`@SpringBootTest`注解才能运行,你有研究过这是为什么吗?本文就来讲一下这个问题。

谷美的互联网练摊记 1584

JUnit4和JUnit5的主要区别

本文介绍了JUnit4和JUnit5的主要区别,用于快速了解JUnit5。

码农无双的博客 7455

junit5和junit4_JUnit声明异常– JUnit 5和JUnit 4

junit5和junit4We can test expected exceptions using JUnit 5 assertThrows assertion. This JUnit assertion method returns the thrown exception, so we can use it to assert exception message too. 我们可以使用JUn...

从零开始的教程世界 1528

Junit 4 与Junit 5区别

所需JDK Junit 4 Junit 5 需要 Java 5 或以上版本 需要Java 8 或以上版本 Architecture Junit 4 所有的东西在一个jar包里,maven依赖如下: junit junit 4.13.1 test Junit 5 由JUnit Platform, JUnit Jupiter 和 JUnit Vintage 三个子项目组成: JUnit Platform 定义了 test engine API,用于开发在

weixin_42258032的博客 2105

JUnit4 简介

JUnit4是一个易学易用的Java单元测试框架,使用非常广泛。现阶段的最新版本号是4.12,JUnit5目前正在测试中,所以这里还是以JUnit4为准。引入JUnit现在主流的IDE比如IDEA或者Eclipse都提供了对JUnit4的支持,可以非常方便的使用JUnit4。当你在代码中添加了@Test注解,然后使用IDE的自动补全功能时,一般情况下IDE会弹出对话框询问你是否将JUnit4库添加到

乐百川 8680

Spring——整合junit4、junit5使用方法

Spring整合Junit4和Junit5使用方法

一起加油吧~ 2790
上一篇: junit学习笔记一
下一篇: 在jsp中调用Active控件播放视频
JavaChenYang
博客等级 码龄20年 35粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值