Сделано #15 Реализовать интеграционное тестирование методов Web Api#24
Conversation
solovyevsa
commented
May 19, 2015
- Добавлена возможность интеграционного тестирования методов Web Api - Fixes Реализовать интеграционное тестирование методов WebAPI #15
- Добавлены интеграционные тесты
- Исправлено поведение при создании нового счетчика - Fixes При создании счетчика возвращается 1. Должен возвращаться 0. #5 - в данном случае фикс взял у AleXKarasev. В его версии уже исправлено поведение метода Bumping. Без этого исправления интеграционные тесты падают.
- Исправлен тест контроллера для проверки нового поведения
|
Поторопился брать фиксы в соседних запросах. ;) |
There was a problem hiding this comment.
Для разбора JSON лучше воспользоваться Newtonsoft.Json
|
Текущие замечания, полагаю, не вызовут затруднений. После этого:
Далее я смогу принять ваш запрос в master и дать оценку. |
|
Пересобрал историю коммитов. |
|
Потерялось создание стартовой учетки. |
|
Поправь комментарии у коммитов. |
|
Стартовая учетка создается. Иначе тесты бы не прошли. |
There was a problem hiding this comment.
В каком случае в этой точке код может обнаружить insertFailed == false?
There was a problem hiding this comment.
Во всех случаях, кроме одного - когда будет сгенерировано исключение MongoDuplicateKeyException, только тогда insertFailed != false
There was a problem hiding this comment.
в секции try есть выход из метода => выполнение кода может пробраться мимо catch (MongoDuplicateKeyException) ТОЛЬКО в случае перехвата MongoDuplicateKeyException
insertFailed можно убрать
There was a problem hiding this comment.
Насчет выхода из метода - тут согласен. Но я посчитал, что повторная вставка нам нужна только когда MongoDuplicateKeyException брошено, а все остальные случаи нас не интересуют.
There was a problem hiding this comment.
Кстати, MongoDuplicateKeyException в методе InsertOneAsync не выбрасывается.
Корректная обработка двойной вставки здесь должна выглядеть так
catch (MongoWriteException ex)
{
if (ex.WriteError.Category != ServerErrorCategory.DuplicateKey)
throw;
}
There was a problem hiding this comment.
Действительно, в документации написано про MongoDuplicateKeyException, а если покопаться в исходниках драйвера то в InsertOneAsync кидается throw MongoWriteException.FromBulkWriteException(ex);
There was a problem hiding this comment.
"повторная вставка нам нужна только когда MongoDuplicateKeyException брошено, а все остальные случаи нас не интересуют"
В случае других исключений мы тоже выходим из метода, ведь они не перехватываются.
There was a problem hiding this comment.
Согласен. Переделал.
|
А к тестам претензий нет, только приложение не рабочее. |