我正在尝试对下面的方法执行白盒测试。它是一种使用计时器在Swing中闪烁JButton的数组列表(lightUpSequence)的方法。
我的问题如下:
因为这是一个void方法,如何检查预期的输出?我打算创建不同大小的数组列表作为输入。对于白盒测试,是否允许在被测试的方法中添加任何代码,如打印/计数器语句?我对在方法中添加任何修改并认为应该按原样测试方法感到犹豫。
非常感谢。
private void blinkSequence() {
final Timer timer = new Timer(BLINKING_TIMER_DELAY, null);
timer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (lightUpSequence.size() == 0) {
timer.stop();
}
// Turn button ON
if (!isON && lightUpSequence.size() > 0) {
int elementIndex = lightUpSequence.get(0);
buttonArrayList.get(elementIndex).setBackground(
Color.yellow);
isON = true;
// Turn button OFF if it's ON already. Then remove the
// element.
} else if (isON && lightUpSequence.size() > 0) {
int elementIndex = lightUpSequence.get(0);
buttonArrayList.get(elementIndex).setBackground(null);
lightUpSequence.remove(0);
isON = false;
}
}
});
timer.start();
timer.setRepeats(true);
}
答案 0 :(得分:1)
好吧,没有什么可以阻止你让它返回一个布尔值,但如果你想保持原样,你可以使用assert
语句。
查看assert
答案 1 :(得分:0)
对于测试void方法,我使用以下startegy:
通过全局化方法粒度化方法的变量。
因此,如果您有一个数组,请在调用之前和之后检查大小。
如果大小相同,请检查数组中对象的状态,并在调用方法之前和之后进行比较,就像它们是否点亮一样。
通过这种方式,您可以有效地遵守白盒测试规则。