gpt4 book ai didi

java - 我怎样才能使用断言来测试这个java代码?

转载 作者:行者123 更新时间:2023-12-01 12:25:59 25 4
gpt4 key购买 nike

我的作业是读取一个 URL 并将该 URL 上的所有超链接打印到一个文件中。我还需要提交一个包含至少一个断言的 junit 测试用例。我已经研究了 Assert 的不同形式,但我无法想出适用于我的代码的任何用法。任何帮助引导我走向正确方向的帮助都会很棒。

(我不是在寻找任何人为我编写测试用例,只是对我应该寻找的方向提供一些指导)

public void saveHyperLinkToFile(String url, String fileName)
throws IOException
{

URL pageLocation = new URL(url);
Scanner in = new Scanner(pageLocation.openStream());
PrintWriter out = new PrintWriter(fileName);

while (in.hasNext())
{
String line = in.next();
if (line.contains("href=\"http://"))
{
int from = line.indexOf("\"");
int to = line.lastIndexOf("\"");
out.println(line.substring(from + 1, to));

}


}
in.close();
out.close();

}

}

最佳答案

尝试将您的方法分解为更简单的方法:

  • List<URL> readHyperlinksFromUrl(URL url);
  • void writeUrlsToFile(List<URL> urls, String fileName);

您已经可以通过将示例文档保存为资源并针对该资源运行它,将结果与已知的 URL 列表进行比较来测试您的第一个方法。

您还可以通过重新读取该文件来测试第二种方法。

但是你可以进一步分解事情:

  • void writeUrlsToWriter(List<URL> urls, Writer writer);
  • Writer createFileWriter(String fileName);

现在您可以通过写入StringWriter来测试您的第一个方法。并通过断言 writer.toString() 相等来检查那里写了什么与样本值。并不是说方法变得越来越简单。

首先编写整个测试甚至玩一下 ping-pong 这实际上是一个非常好的练习。与你自己。

关于java - 我怎样才能使用断言来测试这个java代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26329883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com