Java 如何编写代码来测试另一个类中的代码?

Java 如何编写代码来测试另一个类中的代码?,java,string,testing,reverse,Java,String,Testing,Reverse,所以我应该编写代码来测试一个测试类中的方法,但是我完全迷路了。我想我只是不知道我是否必须纠正常规代码,比如for循环,或者我是否能够用另一种方式来做。我是java新手,它给我带来了很多麻烦 以下是我必须测试的接口中的一种方法: // Returns a reversed version of the specified string, // which can contain any ASCII character. // For example, returns "ed

所以我应该编写代码来测试一个测试类中的方法,但是我完全迷路了。我想我只是不知道我是否必须纠正常规代码,比如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这样的框架将有助于组织测试代码,但您也可以不使用它。

下面是一个简单的测试:

String test = "abcde";
String reverse = reverseString(test);

if (reverse.equals("edcba"))
{
    // test passed
}
else
{
    // test failed
}

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

System.out.println(reverseClass.reverseString("Whatever String You Like"));
您还需要将反向字符串方法设置为静态。
如果您在控制台中看到您的预期结果,您的方法就会起作用。

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

String str = "Hello World!";

assert str.equals("42") : "Not 42!"; // will throw an exception
assert exp1:exp2
将在exp1的计算结果为
false
时抛出
java.lang.AssertionError
。exp2是可选的,它将是该错误的消息

i、 e:


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

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


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

您想试试JUnit或其他框架吗?它为您提供了一个在项目中测试代码的标准。测试代码的好方法有很多,但是如果您能让您的讲师澄清他们的期望,您会更幸运。我们不太可能告诉你他们在找什么。也许方法是:。要编写测试代码,您可以删除一个具体的类,该类不起作用,但让测试代码编译和运行,从而得到失败的结果。这就是进步!通常,测试还将检查结果的正确性。如果测试次数增加,手动检查将变得不现实。
java <VM args> <Main class name> <program args>
java -ea Main