使用main方法在Java中编写单元测试

Mik*_*ith 0 java junit unit-testing

我班上有几种方法

public class StringChecking
{
public static void main(String[] args);
public void stringChecker(String text, int number); //takes a string and prints that out. 
}
Run Code Online (Sandbox Code Playgroud)

我想编写单元测试来测试' stringChecker()'方法.我想知道我会怎么做.当我StringChecking在JUnit Testing类中创建一个类型的对象时,我似乎无法stringChecker()从该实例访问方法.

StringChecker方法根据参数打印出传入文本的特定数量的单词.我希望检查打印出的前10个单词是否与预期结果相同.

JUnit测试类

String expected = "My name is";
asserEquals(expected, actual);
Run Code Online (Sandbox Code Playgroud)

我猜我会让我的stringChecker方法返回一些东西,以便进行检查.但我不明白为什么我无法从测试类访问该方法.

Thi*_*ilo 7

代码将更容易测试,如果不是打印数字,方法将它们返回给调用者.

如果要测试实际打印,可以将间谍对象设置为System.out,而不是打印收集数据.然后您的测试可以断言该输出的正确性.