java - 如何在 JUnit 5 中测试队列?
问题描述
我正在努力在这个程序上实施测试用例。该程序接收一个队列并按升序对其进行排序。它工作正常。但是,当我尝试使用 JUnit 5 测试它返回的结果时,我得到一个错误。我将预期结果和实际结果放在测试类的测试方法中。它仍然不起作用。请帮忙!
(编辑:测试方法)
这是代码:
import java.util.Queue;
public class Sort {
public static Queue<Integer> queueSort(Queue<Integer> queue) {
int n = queue.size();
if (queue.isEmpty()) {
System.out.println("Invalid Input");
} else {
for (int i = 0; i < n; i++) {
int minimumIndex = -1;
int minimumValue = Integer.MAX_VALUE;
for (int j = 0; j < n; j++) {
int currentValue = queue.poll();
if (currentValue < minimumValue && j < (n - i)) {
minimumValue = currentValue;
minimumIndex = j;
}
queue.add(currentValue);
}
for (int j = 0; j < n; j++) {
int currentValue = queue.poll();
if (j != minimumIndex) {
queue.add(currentValue);
}
}
queue.add(minimumValue);
}
}
return queue;
}
}
测试类:
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.LinkedList;
import java.util.Queue;
class SortTest {
Queue<Integer> Q1 = new LinkedList<>();
Queue<Integer> expectedQ1 = new LinkedList<>();
Queue<Integer> Q2 = new LinkedList<>();
Queue<Integer> expectedQ2 = new LinkedList<>();
Queue<Integer> Q3 = new LinkedList<>();
void testInputs() {
Q1.add(10); Q1.add(-1); Q1.add(8); Q1.add(7); Q1.add(2);
expectedQ1.add(-1); expectedQ1.add(2); expectedQ1.add(7); expectedQ1.add(8); expectedQ1.add(10);
Q2.add(6000); Q2.add(5999);
expectedQ2.add(5999); expectedQ2.add(6000);
}
@Test
void queueSortTest1() {
Assertions.assertEquals(expectedQ1, Sort.queueSort(Q1));
}
@Test
void queueSortTest2() {
Assertions.assertEquals(expectedQ2, Sort.queueSort(Q2));
}
@Test
void queueSortTest3() {
Assertions.assertEquals("Invalid Input", Sort.queueSort(Q3));
}
}
解决方案
您应该使用 org.junit.Assert.assertEquals 进行队列相等性检查。
推荐阅读
- prestashop - 如何在 Prestashop 1.7 中复制经典主题
- extjs - 如何定义输入字段的minLength,但只计算GWT中没有空格的插入数字?
- angular - 输入属性在 ngx-charts 模板中不起作用
- javascript - Vue - 全局导入
- biztalk - 如何在 BizTalk 2013 中找到未使用的工件?
- hashmap - 如何创建以函数为值的 HashMap?
- java - 如何从 java 中的字符串中获取特定的 int 值 [122356]
- java - 如何在运行时切换 Spring 配置文件?
- c - 将对象添加到链表
- java - Java 8 流 API 或其他用法