1

我不是在寻找这个问题的答案,而只是简要说明如何做到这一点。这是考试过去试卷中的一个问题。

它指出: 用英语描述一系列测试,您可以使用这些测试来测试代码以实现NumberCoversion该类。您的测试应涵盖上述定义中描述的所有条件。

我不会编写类的规范,但它包含以下内容:它必须String作为输入和输出,接受两个参数并null在数字无效时返回等。

这个问题值得 10%,所以我只需要写一系列的东西,比如: 确保构造函数只接受两个 int 类型的参数,而不是其他任何东西,例如 double 或接受 3 个参数。

是否值得用英语/伪代码编写可能的 JUnit 测试方法。

这是用英语写测试的正确方式吗?

4

4 回答 4

1

我认为目标是描述一个测试用例来检查问题中的每个规范,同时避免尝试测试受语言结构限制的事物(例如错误的参数数量/类型)。

于 2012-08-28T18:55:24.927 回答
1

用英语描述如果你写测试你会做什么。通常它是NumberConversion类的用法。

于 2012-08-28T19:02:35.127 回答
1

根据问题,您需要用英语描述测试。我认为跳到 JUnit 单元测试不仅仅是被要求。NumberConversion如果我回答了这个问题,我会从查看该类的定义开始。我将描述使用有效输入的测试以及使用无效输入的测试。对于每个测试,请描述您将如何确保NumberConversion该类按预期运行,包括预期的错误条件。

于 2012-08-28T19:26:35.417 回答
1

作为一个可能合适的例子......

如果规格是:

  • 接受一个字符串作为输入
  • 字符串可以是任意大的非负整数
  • 如果字符串不是非负整数,则抛出异常

然后我可能会回答以下问题:

  • 我将使用“42”作为输入进行测试,以检查该方法是否适用于“正常”数字
  • 我将使用“0”作为输入进行测试,以检查该方法是否适用于边缘案例编号
  • 我将使用“9223372036854775808”(比 Long.MAX_VALUE 多 1 个)作为输入进行测试,以检查该方法是否适用于大于 Java 提供的固定长度整数的数字
  • 我会用“-1”作为输入进行测试,并确保抛出异常,因为负输入无效
  • 我会以“0xa”作为输入进行测试,并确保抛出异常,因为十六进制输入无效
  • 我会以“0.1”作为输入进行测试,并确保抛出异常,因为非整数输入无效
于 2012-08-29T13:16:32.827 回答