【问题标题】:How to I write code to test code from another class?如何编写代码来测试另一个类的代码?
【发布时间】:2016-05-02 05:24:44
【问题描述】:

所以我应该编写代码来测试来自测试类的方法,但是我完全迷失了。我想我只是很困惑我是否必须正确使用 for 循环之类的常规代码,或者我是否能够以另一种方式做到这一点。我是 java 新手,这给我带来了很多麻烦!

这是我必须测试的界面中的一种方法:

    // Returns a reversed version of the specified string,
    // which can contain any ASCII character.
    // For example, returns "edcba" for "abcde" 
    public String reverseString(String s);

【问题讨论】:

  • 你想试试 JUnit 或其他框架吗?它为您提供了一个标准来测试项目中的代码。
  • 测试代码的好方法有很多,但最好让你的导师澄清他们的期望。我们不太可能告诉您他们在寻找什么。
  • 或许方法是:Red, Green, Refactor。要编写测试代码,您可以存根一个具体的类,该类不起作用,但让测试代码编译和运行,得到一个失败的结果。这就是进步!

标签: java string testing reverse


【解决方案1】:

您可以用来测试代码的工具是assert 关键字:

String str = "Hello World!";

assert str.equals("42") : "Not 42!"; // will throw an exception
如果 exp1 的计算结果为 false

assert exp1 : exp2 将抛出 java.lang.AssertionErrorexp2 是可选的,将是该错误的消息。

即:

Exception in thread "main" java.lang.AssertionError: Not 42!

但是,默认情况下不启用断言。运行程序时需要将-ea作为VM参数传递。

java <VM args> <Main class name> <program args>

例如:

java -ea Main

但是,如果您不想重新发明轮子,我会推荐 JUnit 作为测试框架。它有很多工具可以帮助编写测试代码。它也被广泛使用,因此很容易找到有关的教程。

【讨论】:

    【解决方案2】:

    这个想法很简单:使用各种参数调用方法并检查结果是否符合您的期望。像 JUnit 这样的框架将有助于组织测试代码,但您也可以不用。

    【讨论】:

      【解决方案3】:

      这是一个简单的测试

      String test = "abcde";
      String reverse = reverseString(test);
      
      if (reverse.equals("edcba"))
      {
          // test passed
      }
      else
      {
          // test failed
      }
      

      【讨论】:

        【解决方案4】:

        这很简单。您需要通过执行以下操作来调用该方法:

        System.out.println(reverseClass.reverseString("Whatever String You Like"));
        

        您还需要将反向字符串方法设为静态。 如果您在控制台中看到您的预期结果,那么您的方法有效。

        【讨论】:

        • 通常,测试也会检查结果的正确性。如果测试次数增加,手动检查将变得不切实际。
        猜你喜欢
        • 2013-02-24
        • 1970-01-01
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多