Size: a a a

QA — Автоматизация

2020 September 11

ZE

Zewa 🚽 Expert in QA — Автоматизация
А  indexOf
источник

ЖR

Жора Rusanov in QA — Автоматизация
Сергей
Привет. Есть список элементов, прогоняю через stream, фильтрую по названию. Но мне надо получить номер этого элемента. Подскажите есть метод у stream который позволяет узнать номер элемента.
Если это лист, то можно без стрима просто использовать .indexOf
источник

MK

Maksim Kanin in QA — Автоматизация
можно, наверное, и в стриме маппить
источник

i

i think it's okay in QA — Автоматизация
boolean validation = helperReq.validationSchema
                       (ERROR_SCHEMA_FOR_0_1_2_SYMBOLS_JSON, jsonObject);

assertTrue(validation,"Response must match the ErrorSchema,\n"
                       +"Response Expected: "+ jsonExpected+"\n"
                       +"Responce Actual: "+ jsonObject);
источник

i

i think it's okay in QA — Автоматизация
i think it's okay
boolean validation = helperReq.validationSchema
                       (ERROR_SCHEMA_FOR_0_1_2_SYMBOLS_JSON, jsonObject);

assertTrue(validation,"Response must match the ErrorSchema,\n"
                       +"Response Expected: "+ jsonExpected+"\n"
                       +"Responce Actual: "+ jsonObject);
public static boolean validationSchema(String pathToSchema, org.json.JSONObject json) {

               org.json.JSONObject jsonSchema = new org.json.JSONObject
                       (new JSONTokener(String.valueOf(getJSONfromJSONFile(pathToSchema))));
               Schema schema = SchemaLoader.load(jsonSchema);
               
               try {
                       schema.validate(json);
                       return true;
               } catch (ValidationException e) {
                       return false;
               }

       }
источник

i

i think it's okay in QA — Автоматизация
метод validationSchema всратый - подскажите пожалуйста что с ним можно сделать?
я специально не стал переносить проверку assertTrue внутрь - чтобы проверка была в тесте.
источник

EB

Evgenii B in QA — Автоматизация
1. это метод возвращающий bool, обычно булевые атрибуты имеют имя isUserAuthenticated, hasPaidOut, etc, то есть имеют has / is указывающих на "булевость" метода

2. validationException зачем-то замалчивается - как это дебажить потом?
источник

ЖR

Жора Rusanov in QA — Автоматизация
i think it's okay
метод validationSchema всратый - подскажите пожалуйста что с ним можно сделать?
я специально не стал переносить проверку assertTrue внутрь - чтобы проверка была в тесте.
тебе вообще ассерт не нужен
источник

EB

Evgenii B in QA — Автоматизация
i think it's okay
boolean validation = helperReq.validationSchema
                       (ERROR_SCHEMA_FOR_0_1_2_SYMBOLS_JSON, jsonObject);

assertTrue(validation,"Response must match the ErrorSchema,\n"
                       +"Response Expected: "+ jsonExpected+"\n"
                       +"Responce Actual: "+ jsonObject);
вместо этого всего я бы написал

// some code before
helperReq.validateSchema(SCHEMA)
// some code after

где validateSchema()
- ничего не делает, если схема провалидирована
- бросает ValidationError со стектрейсом и указанием места, на котором валидация свалилась
источник

EB

Evgenii B in QA — Автоматизация
Если при этом важно чтобы это был assertion error (например., если на проекте фильтруются метрики по падению проверок vs ошибки в самих тестах, то есть неожиданные ошибки), то тогда в validateSchema нужно будет обработать validationexception, и поднять assertion error, но все равно со всей информацией стектрейса как именно валидация свалилась. в текущей реализации true/false не очень информативно
источник

i

i think it's okay in QA — Автоматизация
Evgenii B
вместо этого всего я бы написал

// some code before
helperReq.validateSchema(SCHEMA)
// some code after

где validateSchema()
- ничего не делает, если схема провалидирована
- бросает ValidationError со стектрейсом и указанием места, на котором валидация свалилась
понял.
спасибо.
я почему то решил, что мне принципиально важно чтобы тест падал именно в теле теста.
но не могу придумать ни одну причину почему должно быть именно так
источник

i

i think it's okay in QA — Автоматизация
а так наверное действительно неважно - так ещё и текст будет  ошибки
источник

MK

Mem Kekovich in QA — Автоматизация
Zewa 🚽 Expert
А  indexOf
Слишком сложно. Стримы модны молодежны
Странно, что не в цикле :) там ж индекс тож есть из коробки, если надо в цикле )
источник

B

Bola in QA — Автоматизация
i think it's okay
понял.
спасибо.
я почему то решил, что мне принципиально важно чтобы тест падал именно в теле теста.
но не могу придумать ни одну причину почему должно быть именно так
Явное - лучше не явного
В теле теста если ассерт,то видишь сразу, что проверяется
А в метод надо сбегать)
источник

MK

Mem Kekovich in QA — Автоматизация
Bola
Явное - лучше не явного
В теле теста если ассерт,то видишь сразу, что проверяется
А в метод надо сбегать)
Чего?) типа лучше тащить все ошибки в тело теста?)
источник

B

Bola in QA — Автоматизация
Mem Kekovich
Чего?) типа лучше тащить все ошибки в тело теста?)
Нет, я пытаюсь объяснить, почему автор вопроса так решил)
источник

B

Bola in QA — Автоматизация
Mem Kekovich
Чего?) типа лучше тащить все ошибки в тело теста?)
Не ошибки, а ассерты
источник

i

i think it's okay in QA — Автоматизация
     public static void validationSchemaV2(String pathToSchema, JSONObject json) {

        org.json.JSONObject jsonSchema = new org.json.JSONObject
                (new JSONTokener(String.valueOf(getJSONfromJSONFile(pathToSchema))));
        Schema schema = SchemaLoader.load(jsonSchema);
        schema.validate(json);
    }
источник

i

i think it's okay in QA — Автоматизация
@Test
public void test2() {
org.json.JSONObject jsonResponse = helperReq.sendRequestGetJSON(PATH,"");
helperReq.validationSchemaV2(BASE_SCHEMA,jsonResponse);
}
источник

i

i think it's okay in QA — Автоматизация
Убрал ассерт.
Убрал try/catch.
Если упадет - то упадет в методе.
Если не упадет, то ничего видно не будет - но мне вроде и не нужно
источник