0X JavaSE-- ( 遍历-- for-each、Iterator 、)、形参 args、单元测试

main 函数的形参 args

 public static void main(String[] args) {}
  • 对于 main 方法的形参
    • 形参必须是一个 String 类型的数组
    • 形参名一般是 args,但不强制要求。
    • 如果参数类型不符合规定,JVM将无法调用该方法,并抛出 NoSuchMethodError 异常。
  • String[] args 的目的是让用户通过命令行传参
public class Test {
    public static void main(String[] args) {
        System.out.println(args[0]);
    }
}
# 在命令行中,运行以下命令
$ javac Test.java
$ java Test IAMASTRING

最终终端会输出 IAMASTRING

1. 在 IDEA 中使用该特性

在这里插入图片描述

在这里插入图片描述

遍历

1. for-each

for each 语句是 JDK5 的新特征,主要用于遍历数组集合

// collection 可以是数组/实现了 Iterable 接口的集合类
for(dataType variable : collection){ 
     // 使用 item 进行操作
} 
// 遍历二维数组
        // 初始化一个二维数组
        int[][] array = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
       
// row 和 element 都不是关键字,而是自己起的变量名 
// array 是一个二维数组,每一项都是一个一维数组(即int[])。
// 每次迭代中,row 变量会依次引用 array 中的每一个一维数组(行)。
        for (int[] row : array) { // 外层循环遍历数组的每一行
// 每次迭代中,element 变量会依次引用 row 数组中的每一个整数值。
            for (int element : row) { // 内层循环遍历当前行的每个元素
                System.out.print(element + " "); // 打印当前元素
            }
// 遍历三维数组
for (int[][] matrix : array3D) {
    for (int[] row : matrix) {
        for (int element : row) {
            System.out.print(element + " ");
        }
  • for-each 不需要事先知道元素个数,有时候能方便代码编写
// 求 数组中的最大元素,如果采用普通 for,代码显然更复杂一些
        public static int searchMax ( int[] arr){
            int max = arr[0];
            
            for (int num : arr) {
                if (num > max) {
                    max = num;
                    return max;
                }
            }

2. Iterator

JUnit 单元测试框架

主要参考如下:https://www.cainiaoya.com/junit/junit-jiaocheng.html

  • 单元测试负责对最小的软件设计单元(模块)进行验证

  • JUnit 是一个单元测试框架,但其已经成为单元测试事实上的代名词。

  • 单元测试的要点:

    • 每个单元测试方法都需要使用 @Test 注解标注。
    • 单元测试方法返回值类型必须是 void
    • 单元测试方法形参个数必须为 0
    • 建议单元测试方法名:testXxx
  • Junit 的常用注解

    • @Test:标识一条测试用例
    • @lgnore: 忽略一条测试用例
    • @Before:每一个测试方法之前运行有该注解的方法。在 JUnit5 中更名为 BeforeEach
    • @After:每一个测试方法之后运行有该注解的方法。在 JUnit5 中更名为 AfterEach
    • @BefreClass:所有测试开始之前运行有该注解的方法,BeforeClass 注解的方法必须为静态的。在 JUnit5 中更名为 BeforeAll
    • @AfterClass:所有测试结束之后运行有该注解的方法,AfterClass 注解的方法必须为静态的。在 JUnit5 中更名为 AfterAll

JUnit 常用注解

BeforeAll

  • BeforeAll 注解的方法适合做一些全局初始化的工作,例如数据库连接。当执行测试类后,BeforeAll 注解的方法首先执行,且仅执行一次,然后依次执行其他普通测试方法。
  • BeforeAll 仅当执行测试类时,才会生效,执行普通测试方法时,不会连带执行 BeforeAll 注解的方法。
  • BeforeAll 注解的方法无法单独执行。
 public class SampleTestSuite {

    @BeforeAll
    static void setup() {
        System.out.println("Setting up the database...");
    }

    @Test
    void testExample1() {
        System.out.println("Running testExample1");
    }

    @Test
    void testExample2() {
        System.out.println("Running testExample2");
    }
}
  • 如果执行整个类,会依次输出三条语句
  • 如果执行某个单独的测试方法,那么 @BeforeAll 注解的方法不会运行

JUnit 断言



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值