Java 接收tdd url测试的空输出
当我在我的项目上运行junit测试时,当我尝试测试我的项目是否可以正确构建url时,我收到以下错误。我不确定我在下面做的错误是失败测试运行的跟踪以及distancematrixconnection类和测试类。当试图编译url字符串时,它将生成一个空白输出 org.junit.ComparisonFailure:应为:但为: 位于org.junit.Assert.assertEquals(Assert.java:115) 位于org.junit.Assert.assertEquals(Assert.java:144) 在edu.bsu.cs222.gascalator.tests.GoogleUrlTests.TestalBannyToAlBanyInUrl(GoogleUrlTests.java:26)Java 接收tdd url测试的空输出,java,unit-testing,junit,tdd,Java,Unit Testing,Junit,Tdd,当我在我的项目上运行junit测试时,当我尝试测试我的项目是否可以正确构建url时,我收到以下错误。我不确定我在下面做的错误是失败测试运行的跟踪以及distancematrixconnection类和测试类。当试图编译url字符串时,它将生成一个空白输出 org.junit.ComparisonFailure:应为:但为: 位于org.junit.Assert.assertEquals(Assert.java:115) 位于org.junit.Assert.assertEquals(Assert
}比较您在
makeXMLFile
中的测试用例和代码,我对您在这里真正想要做什么感到困惑
如果您想通过测试,那么我认为这段代码将为您做到这一点。您可以使用urlcoder
对URL字符串进行正确编码
public class GoogleDistanceMatrixConnection
{
public String makeXMLFile(String start, String end) throws IOException
{
return "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=" + URLEncoder.encode(start) +"&destinations=" + URLEncoder.encode(end) +"&language=en-EN&sensor=false&language=en-EN&units=imperial";
}
}
否则,您需要澄清您的问题 您的代码返回HTTP请求返回的任何内容的最后一行。看起来结尾有一个空行。我猜你的代码不是为了做这个。请澄清您的期望。您正在将URL
generatedUrl
与打开并阅读时从URL读取的最后一行进行比较。不,@deanosur,他正在将actualUrl
变量的内容与读取的最后一行进行比较。@DavidWallace--您是对的,generatedUrl
是从actualUrl
读取的最后一行makeXMLFile
并没有创建URL字符串,这似乎是测试假设的,而是读取URL中的行。我想OP需要澄清他的问题。我正在努力让测试通过,但是编写GoogleDistanceMatrixConnection类是为了建立连接,并将其保存为url字符串(如果有意义的话)。解析和测试对我来说都是全新的。@DanB从这个意义上说,您编写的测试与您编写的方法不匹配。您已经为构建URL的方法编写了一个测试,但实际上并没有访问它。您已经编写了一个方法,该方法构建URL,然后访问它,读取响应,并返回响应的最后一行。如果你现在要做的就是通过测试,那么这个答案是正确的。@DanB你到底想做什么?我只想让它运行url字符串,用测试中的位置替换变量startLocation和endLocation,并确保它与测试用例中的实际url匹配。另外,我还可以将公共字符串makexmlfile放入googleurltests类并删除urlstring。在每个生成的url开始时,他们都工作了。感谢您的帮助,并对令人困惑的问题表示抱歉
public class GoogleUrlTests {
private GoogleDistanceMatrixConnection urlString = new GoogleDistanceMatrixConnection();
private String generatedUrl = "";
private String actualUrl = "";
@Test
public void testAlbanyNYtoAlbanyINURL() throws IOException {
generatedUrl = urlString.makeXMLFile("albany", "albany+in");
actualUrl = "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=albany&destinations=albany%20in&language=en-EN&sensor=false&language=en-EN&units=imperial";
Assert.assertEquals(actualUrl, generatedUrl);
}
@Test
public void testLosAngelesToNewYorkURL() throws IOException {
generatedUrl = urlString.makeXMLFile("losangeles", "newyork");
actualUrl = "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=losangeles&destinations=newyork&language=en-EN&sensor=false&language=en-EN&units=imperial";
Assert.assertEquals(actualUrl, generatedUrl);
}
public class GoogleDistanceMatrixConnection
{
public String makeXMLFile(String start, String end) throws IOException
{
return "http://maps.googleapis.com/maps/api/distancematrix/xml?origins=" + URLEncoder.encode(start) +"&destinations=" + URLEncoder.encode(end) +"&language=en-EN&sensor=false&language=en-EN&units=imperial";
}
}