java - 如何比较同一数组中的两个元素?
问题描述
我想用 Junit 为我的 ParOfDice 类编写测试用例。但我不知道,如何比较同一个数组的元素。不是两个不同的数组。
public class Wuerfelpaar { // ParOfDice//
//Erstellungs des Arrays
private int[] wuerfel = new int[2];
//Konstruktur des Klasses
public Wuerfelpaar() {
this.roll();
this.pasch();
}
public void roll() {
// Liefert die Länge vor der for-Schleife. Dies wird schneller sein, als wir es nicht sind
// Immer wieder durch den Bereich navigieren.
int length = wuerfel.length;
for (int i = 0; i < length; ++i) {
wuerfel[i] = (int) ((Math.random() * 6) + 1);
System.out.println(wuerfel[i]);
}
}
//Falls die Elemente des Arrays (beide Wuerfel) gleich sind
//Kriegen wir eine Meldung, dass das Pasch ist.
//Mit diese Struktur, sind die Klassen wiederrufbar.
public void pasch(){
if (wuerfel[0] == wuerfel[1]){
System.out.println("PASCH");
}
}
}
解决方案
测试pasch()
我会添加一个getter方法:
public int[] getWuerfel() {
return wuerfel;
}
和一个布尔验证方法:
public boolean istPaar() {
if(wuerfel[0] == wuerfel[1]) {
return true;
}
return false;
}
到Wuerfelpaar
. 然后在您的 JUnit 测试中,您可以执行以下操作:
Wuerfelpaar wp = new Wuerfelpaar();
int[] wuerfel = wp.getWuerfel();
if(wp.istPaar()) {
assertEqual(wuerfel[0], wuerfel[1]);
}
else {
assertNotEqual(wuerfel[0], wuerfel[1]);
}
其他测试
就其他单元测试而言,我认为你真的不需要测试这个类的其他部分。但是如果你确定了,我会写一个测试来roll()
使用上面的 getter 方法,然后检查wuerfel
数组中的两个数字是否在1和6之间。
推荐阅读
- amcharts - 确保显示值标签
- tableau-api - Tableau 禁用自定义视图选项
- shell - 如何迭代文件夹内的所有文件并运行 curl 命令来安装 AEM 包
- javascript - 数据表子行 Hanlde Null 值
- php - 找不到类“条纹\条纹”
- authentication - 如何使用 OpenID Connect 在 API 中获取身份
- algorithm - ArrayBuffer 的二进制搜索
- r - papaja:放置浮动时控制文本间距 H
- c# - 错误:System.InvalidOperationException:未创建会话:Chrome 版本必须在 70 到 73 之间,使用 ChromeDriver 和 Chrome 通过 Selenium
- java - 分页库 - 按键加载特定页面