使用Junit测试函数(ParseToXML,PostMethod)

时间:2012-04-12 16:36:46

标签: unit-testing junit xml-parsing apache-commons-httpclient

我想为这个函数编写JUNIT测试

public static int creerFichierXml(TextField titre_projet,TextField description1,TextField svn,TextField planning1,TextField planning2,TextField goals,TextField mail){
//Créer le fichier XML et l'envoyer au serveur

    int returnCode = 0;
    ParseToXML j=new ParseToXML();
    try {
j.main(description1, svn, planning1, planning2, goals,mail);
    } catch (InterruptedException e1) {
        e1.printStackTrace();
    }

HttpClient client = new HttpClient(); 
PostMethod postMethod = new PostMethod("http://localhost:8080/createItem?name="+titre_projet.toString()); 
postMethod.setRequestHeader("Content-type", "application/xml; charset=ISO-8859-1"); 
try {
    postMethod.setRequestBody(new FileInputStream(new File("C:/integrationContinue/src/main/resources/config.xml")));
    returnCode = client.executeMethod(postMethod);
    System.out.println("*********************************************"+returnCode);


} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (HttpException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
return returnCode;
}

此代码用于创建xml文件,然后使用postMethod

将其发送到服务器

Junit必须测试http Connection,Parse to Xml并调用main函数

1 个答案:

答案 0 :(得分:0)

如果您正在调用ParseToXMLHttpClientPostMethod,那么您不会进行单元测试,因为您正在测试受测试类之外的代码。要真正对此进行单元测试,您需要提供ParseToXmlHttpClientPostMethod的工厂类。然后你会注入模拟工厂,它们会为每个类返回模拟。然后你会测试模拟被正确调用。

如果您正在测试此代码实际上向服务器X发送了HTTP Post方法,那么您正在进行集成测试而不是单元测试。