JUnit5用户手册~嵌套测试

该代码示例展示了如何使用JUnit5进行嵌套测试,测试一个Stack对象的初始化、空栈操作以及元素压入后的行为。测试包括检查栈是否为空,尝试从空栈弹出和查看元素时抛出EmptyStackException,以及压入元素后的栈状态和操作验证。
摘要由CSDN通过智能技术生成

嵌套测试

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.EmptyStackException;
import java.util.Stack;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

@DisplayName("A stack")
class TestingAStackDemo {

  Stack<Object> stack;

  @Test
  @DisplayName("is instantiated with new Stack()")
  void isInstantiatedWithNew() {
      new Stack<>();
  }

  @Nested
  @DisplayName("when new")
  class WhenNew {
      @BeforeEach
      void createNewStack() {
          stack = new Stack<>();
      }

      @Test
      @DisplayName("is empty")
      void isEmpty() {
          assertTrue(stack.isEmpty());
      }

      @Test
      @DisplayName("throws EmptyStackException when popped")
      void throwsExceptionWhenPopped() {
          assertThrows(EmptyStackException.class, stack::pop);
      }

      @Test
      @DisplayName("throws EmptyStackException when peeked")
      void throwsExceptionWhenPeeked() {
          assertThrows(EmptyStackException.class, stack::peek);
      }

      @Nested
      @DisplayName("after pushing an element")
      class AfterPushing {
          String anElement = "an element";

          @BeforeEach
          void pushAnElement() {
              stack.push(anElement);
          }

          @Test
          @DisplayName("it is no longer empty")
          void isNotEmpty() {
              assertFalse(stack.isEmpty());
          }

          @Test
          @DisplayName("returns the element when popped and is empty")
          void returnElementWhenPopped() {
              assertEquals(anElement, stack.pop());
              assertTrue(stack.isEmpty());
          }

          @Test
          @DisplayName("returns the element when peeked but remains not empty")
          void returnElementWhenPeeked() {
              assertEquals(anElement, stack.peek());
              assertFalse(stack.isEmpty());
          }
      }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值