У меня есть следующий массив: [[Disable,Enable,No,Yes][Joe,Bill,Doug,Kevin],[Red,Blue,Pink,Magenta],[One,Two,Three,Four]];
Мне нужен сопоставитель подколенного сухожилия, который будет соответствовать файлу excel, в котором есть данные пары имя/значение. Я пробовал: hasItem, hasItems, hasItemInArray.
Я просмотрел следующие ссылки:
Дайте мне знать, если мне не хватает какой-либо информации, которая была бы полезна.
private String[][] getExcelSheetData(String excelFile)
throws NoExcelValidationDataFoundException {
String[][] excelValidationData = null;
try {
ExcelDAOFactory excelDAOFactory = (ExcelDAOFactory) DAOFactory
.getFactory(DAOFactory.EXCEL);
excelDAOFactory.setExcelFile(excelFile);
excelValidationData = excelDAOFactory.fetchData();
TAFLogger.logTAFActivity("Finished retrieving data from "
+ excelFile);
} catch (InvalidFormatException | IOException | UnsupportedDAOException e) {
TAFLogger.logTAFActivity(
"Error retrieving data from ExcelDAOFactory: "
+ e.getMessage(), logger.WARN);
throw new NoExcelValidationDataFoundException(
"Could not retireve validation " + "data from " + excelFile
+ e.getMessage());
}
return excelValidationData;
}
Код, чтобы попытаться сопоставить с hamcrest, в котором нет ничего для «вложенного массива», который я вижу:
requestBuilder = new RequestSpecBuilder();
requestBuilder.addCookie().setContentType(ContentType.JSON);
requestSpecification = requestBuilder.build();
responseBuilder = new ResponseSpecBuilder();
responseBuilder.expectStatusCode(Integer.parseInt(xmlTest
.getParameter("http-status-code-200")));
//responseBuilder.expectContentType(ContentType.JSON);
responseSpecification = responseBuilder.build();
try {
validationData = getExcelSheetData(excelFile);
} catch (NoExcelValidationDataFoundException e) {
Logger.logActivity("Could not retrieve Excel sheet data: "
+ e.getMessage(), Logger.ERROR);
Assert.fail("Could not retrieve Excel sheet data: "
+ e.getMessage());
for (int i = 0; i < validationData.length; i++) {
responseBuilder.expectBody(validationData[i][0],
hasItemInArray(validationData[i][1]));
responseSpecification = responseBuilder.build();
try {
//Response res = given().getValue()).get("data/roles");
String data = given().spec(requestSpecification).
.expect().spec(responseSpecification).when().get("data/roles").asString();
System.out.println(data);
logger.logTestActivity("Completed testing JSON payload using Excel file");
} catch (AssertionError e) {
logger.logTestActivity(
"Error testing JSON payload: " + e.getMessage(),
logger.ERROR);
throw new Exception(e);
В последнем параграфе с «hasIteminArray» я пытаюсь использовать Hamcrest для подтверждения JSON вложенного массива.