没腿的鸟 发表于 2024-9-2 04:36:18

【Java设计模式】Arrange/Act/Assert模式:加强测试的清楚度和简洁性

【Java设计模式】Arrange/Act/Assert模式:加强测试的清楚度和简洁性

一、概述

在Java开发中,良好的测试是确保代码质量的关键。Arrange/Act/Assert模式是一种用于组织单位测试的有用模式,它能够进步测试的可读性和可维护性。本文将详细先容该模式的意图、表明、编程示例以及实用场景。同时,还将提供示例代码的下载链接,方便读者进行学习和实践。
二、Arrange/Act/Assert设计模式的别名



[*]Given/When/Then
三、Arrange/Act/Assert设计模式的意图

Arrange/Act/Assert模式在Java单位测试中至关重要。这种测试方法通过将单位测试明白地分为三个差别的部分:设置(Arrange)、实行(Act)和验证(Assert),来布局化单位测试。
四、Arrange/Act/Assert模式的详细表明及现实示例


[*]现实示例:

[*]想象你正在组织一个小型活动。为了确保一切顺利进行,你遵照一种类似于Arrange/Act/Assert的模式:
[*]
[*]Arrange:你设置场地,准备高朋名单,安排座位,并组织餐饮。

[*]
[*]Act:你按照计划进行活动,欢迎高朋,提供食物,并遵照时间表。

[*]
[*]Assert:活动结束后,你通过检查高朋反馈、确保全部任务完成以及检察一切是否按计划进行来评估活动的乐成。

[*]这种清楚的准备、实行和评估的分离有助于确保活动组织有序并取得乐成,反映了软件测试中Arrange/Act/Assert模式的布局化方法。

[*]通俗表明:

[*]Arrange/Act/Assert是一种测试模式,它将测试组织成三个清楚的步骤,便于维护。

[*]维基百科表明:

[*]Arrange/Act/Assert是一种用于在UnitTest方法中安排和格式化代码的模式。

五、Java中Arrange/Act/Assert模式的编程示例

我们须要为一个类编写全面且清楚的单位测试套件。在Java测试中使用Arrange/Act/Assert模式可以确保清楚度。
首先,我们先容要进行单位测试的Cash类。
public class Cash {
    private int amount;
    Cash(int amount) {
      this.amount = amount;
    }
    void plus(int addend) {
      amount += addend;
    }
    boolean minus(int subtrahend) {
      if (amount >= subtrahend) {
            amount -= subtrahend;
            return true;
      } else {
            return false;
      }
    }
    int count() {
      return amount;
    }
}
然后,我们根据Arrange/Act/Assert模式编写单位测试。请注意每个单位测试中清楚分离的步骤。
class CashAAATest {
    @Test
    void testPlus() {
      //Arrange
      var cash = new Cash(3);
      //Act
      cash.plus(4);
      //Assert
      assertEquals(7, cash.count());
    }
    @Test
    void testMinus() {
      //Arrange
      var cash = new Cash(8);
      //Act
      var result = cash.minus(5);
      //Assert
      assertTrue(result);
      assertEquals(3, cash.count());
    }
    @Test
    void testInsufficientMinus() {
      //Arrange
      var cash = new Cash(1);
      //Act
      var result = cash.minus(6);
      //Assert
      assertFalse(result);
      assertEquals(1, cash.count());
    }
    @Test
    void testUpdate() {
      //Arrange
      var cash = new Cash(5);
      //Act
      cash.plus(6);
      var result = cash.minus(3);
      //Assert
      assertTrue(result);
      assertEquals(8, cash.count());
    }
}
六、Java中何时使用Arrange/Act/Assert模式

在以下环境下使用Arrange/Act/Assert模式:

[*]进行单位测试,特别是在TDD和BDD的上下文中。
[*]在任何须要测试案例清楚和布局化的地方。
七、Java中Arrange/Act/Assert模式的现实应用


[*]该模式在Java中实践TDD和/或BDD方法学时特别有用。
[*]它在各种编程语言和测试框架中得到应用,如JUnit(Java)、NUnit(.NET)和xUnit框架。
八、Arrange/Act/Assert模式的长处和衡量


[*]长处:

[*]通过清楚地分离设置、操作和验证步骤,进步了测试的可读性。
[*]每个测试都以可预测的方式布局化,使得测试更轻易维护和明白。
[*]通过将测试失败隔离到测试中的特定阶段,便于调试。

[*]衡量:

[*]可能会在测试中引入冗余,因为类似的设置可能会在多个测试中重复。
[*]一些复杂的测试可能不太适合这种布局,须要在这三个阶段之外添加额外的上下文或设置。

九、源码下载

Arrange/Act/Assert模式示例代码下载
通过本文的先容,信赖各人对Java中的Arrange/Act/Assert模式有了更深入的相识。在现实开发中,公道运用该模式可以进步测试的服从和质量,为代码的稳定性提供有力保障。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Java设计模式】Arrange/Act/Assert模式:加强测试的清楚度和简洁性