我获得了一项任务:
考虑单个数字的列表。例如,
[2,2,5]
。 考虑这些列表的继承者。
[2,2,5]
的继任者是[2,2,6]
。[2,3,9,9]
的继任者是[2,4,0,0]
。[9,9,9,9]
的继任者是[1,0,0,0,0]
。编写一个Java程序,将这样的数字列表作为输入和 返回其继任者。您不能将此列表表示为小数 编号和计算其后继者,因为数字可能太大而不是 发生溢出。让你的程序尽可能短。
使用Java提交代码以及编译说明和测试脚本。
我编写了程序并编译并成功运行。该程序完全符合任务要求。但是,我不确定教师对测试脚本的意义。有人请解释并提供一个例子吗?
注意:如果您决定对该问题进行投票,请提供一个理由,以便我可以编辑我的问题。
答案 0 :(得分:3)
查找Junit。教授希望您创建一个测试特定场景的测试类。像这样:
@Test
public void testSuccesor() {
int[] start = {2,2,5};
int[] expected = {2,2,6};
int[] actual = callSuccesorMethod(start);
assertArrayEquals(expected, actual);
}
如果预期值与实际值不匹配,测试将失败。单元测试是验证代码的好方法。它还有助于未来的开发,当您更改代码时,您可以重新运行测试以验证您没有破坏任何内容。
同时查看TDD,这是一种您可能感兴趣的编程风格。
答案 1 :(得分:0)
测试脚本是一个运行代码的程序(称为" 系统正在测试"或者只是" SUT & #34;)以可预测的方式,并验证其行为对于给定的输入是否正确。测试可能与SUT使用相同的语言,但使用不同的语言非常常见,因为您对性能,易于修改,可读性和稳健性有不同的要求。
例如,在您的情况下,简单的shell脚本就足够了:
#!/bin/bash
set -e # important, so the script fails if any single command fails
test '2,2,6' = $(./successor '2,2,5')
test '2,4,0,0' = $(./successor '2,3,9,9')
# Add any more tests you think you should have
如果您的编译说明以Makefile的形式呈现,您也可以从那里运行测试。调用目标test
是一个常见的约定,因此make test
将编译您的程序并运行其测试。