Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接收tdd url测试的空输出_Java_Unit Testing_Junit_Tdd - Fatal编程技术网

Java 接收tdd url测试的空输出

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

当我在我的项目上运行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)



}

比较您在
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";    
    }
}