Это мой код для чтения файла csv по строкам для выполнения теста Junit для HTTP-запроса. Но я могу проверить только альтернативные данные, то есть: первые данные считываются, а затем второй пропущен, затем третий читается, четвертый пропущен и т. Д. Из CSV-файла, любезно помогите мне с кодом, если в нем есть какая-либо проблема.CSV Parsing, чтобы прочитать ввод для тестирования Junit по строкам
package testingpack;
import static org.junit.Assert.*;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import com.csvreader.CsvReader;
import java.io.UnsupportedEncodingException;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Test;
public class testcase {
@Test
public void test() throws UnsupportedEncodingException, JSONException {
String output = null;
String url="";
String testJson;
int c=0;
try {
CsvReader reader = new CsvReader(new FileReader("C:\\Users\\Srijan Rana\\Desktop\\Api.csv"), ',');
while(reader.readRecord())
{
c=c+1;
System.out.println("Loop Counter"+c);
Boolean br = reader.readRecord();
if (br) {
String[] columns = reader.getValues();
url=columns[1];
System.out.println("The URL is \n"+url);
testJson=columns[3];
testJson=testJson.replaceAll("~", ",");
System.out.print(testJson);
if(columns[2].equalsIgnoreCase("POST"))
output=(String) CommonUtil.postDataToService(url, testJson);
else if(columns[2].equalsIgnoreCase("Get"))
output=(String) CommonUtil.getResponseFromService(url);
System.out.println("Output is: "+output);
JSONObject json = new JSONObject(output);
String val = json.getString("mobile_exist");
assertEquals("false",val);
}
}
} catch (FileNotFoundException fe) {
System.out.println(fe.getMessage());
} catch (IOException ie) {
System.out.println(ie.getMessage());
}
}
}
Подсказка: правила для хорошего дизайна и чистого кода также применяются для тестового кода. В этом смысле: попытайтесь сделать ** меньше ** одним методом. Это ** тест **, поэтому вы действительно действительно хотите, чтобы он потерпел неудачу, если что-то пошло не так. Таким образом, заявления «распечатать только» catch являются ** контрпродуктивными **! Вместо этого просто выбросьте заявления catch, так что любое исключение сделает JUnit неудачным в конце. Другими словами: даже когда вы исправили эту ** ошибку ** в своем коде; Я вижу дюжину или более «проблем» с этим кодом. Возможно, вы захотите сделать несколько обзоров с более опытными сверстниками, чтобы исправить эти ... – GhostCat