Обновить
59
1.8

Пользователь

Отправить сообщение
При тестировании SUT через API («front door») проверяются связи между значениями на прямых входах и значении на выходе (direct inputs и direct outputs). В данном случае при подаче на вход валидного значения Payload ожидается конкретный результат MessageHandlerResult.Success на выходе:
public void Should_save_valid_data()
{
    var result = handler.Handle(validPayload);
    Assert.Equal(MessageHandlerResult.Success, result);
}

Такого же уровня детализации стоит придерживаться и при формулировании требований в отношении Indirect Output при тестировании «back door»:
public void Should_log_to_messaging_events_on_saving_valid_data()
{
    var result = handler.Handle(validPayload);
    messagingLogger.Verify(m => m.Received(It.Is(validPayload)), Times.Once())
}
Необходимо протестировать работу метода Handle(). Вопрос стоит в том, чтобы убедиться, что методы DbCommands и MessagingLogger были вызваны.

Требование к Indirect Outputs какое-то мутное. Если по аналогии сформулировать требование к выходу (Direct Output) самого метода Handle(), то получится что-то типа: «Необходимо протестировать работу метода Handle(). Вопрос стоит в том, чтобы убедиться, что метод возвращает результат.».

Тот факт, что мы просто должны дергать за ручки back door систем, не очень осмысленный, так же как мало смысла в проверке, что метод возвращает «неважно что». При верификации выходов SUT (Direct или Indirect) в первую очередь стоит проверять, что выполняются контракты по значениям на этих самых выходах. А для этого и требования должны формулироваться соответствующим образом.
Test Doubles удобно рассматривать в разрезе ролей, которую они выполняют в тестах сайд-эффектов:
Stubs — предоставляют заданные значения для входов SUT (Indirect Inputs),
Mocks — дают возможность для верификации выходов SUT (Indirect Outputs),
Fake — реализуют штуки, которые в тесте не важны, но без которых SUT не работает (null-objects, dummy и т.п.).

В этом смысле оба варианта, предложенных в статье, предназначены для проверки Indirect Outputs и реализуют Mock. Первый использует программную генерацию (ad-hoc), второй написан лапками (hard coded).
Кислород нельзя получить без синтеза в звезде, даже в нескольких поколениях звёзд.

интересно, что «привело астрономов к мысли, что примерно 7 миллионов лет повсюду во Вселенной можно было найти жидкую воду», если кислорода тогда еще не было?
Если даже розничные сети, типа Магнита, открывают вакансии полиграфологов, значит это кому-нибудь нужно. https://krasnodar.superjob.ru/vakansii/glavnyj-specialist-poligrafolog-12310158.html
И тогда он взял и за один день написал Git.
Ребятам, которые делают GitHub, надо бы устроить акцию просвещения среди мейнтейнеров ядра. Иначе кто-то снова сядет, и напишет за один день. Они это могут, и кто его знает, что тогда будет с этим вашим GitHub через два года. :)
но кажется, аудитория решила выпороть в ответ автора, вместе с его несчастной статьей. =)
Стало ли оно причинять боль и мучения своей целевой аудитории хотя бы на уровне портала ГосУслуг?

В точку! :)
Суть ведь не в том, чтобы обойти блокировщики или как-то еще навязать рекламу. Технически, в этом нет какой-то особенной проблемы. Но, поступая таким способом, сайт с большой вероятность лишь отпугнет пользователей.

В этой нише есть интересный момент: практически каждый посетитель, с большой степенью вероятности является потенциальным потребителем. Распугивать потребителей, наверно, немного глупо для бизнеса.

Поэтому сервису важно убедить пользователей воспринимать рекламу на сайте не как что-то враждебное, а как может быть даже нужное.Только этом случае она начинает нормально работать. Что собственно они и делают. А нечастые акции по обходу блокировщиков это отработанный PR ход, направленный на привлечение внимания.
Боюсь, не поможет. Разработчики станут добавлять необходимые слайды с хайрез графикой в какие-нибудь заставки, переходы между локациями и т.п. Уже сто раз так делали, правда с другими целями.
Пробовали заставлять удаленщиков мониторить друг за другом (kpi, например, кол-во скринов с неадекватом на экране наблюдаемого в течении раб.дня)? На первый взгляд куча преимуществ:

* подсмотреть в окно раз в 10-15 минут, ну может еще сделать скриншот, для разраба ни чего не стоит. а значит и для вас тоже.
* процесс создает правильный рабочий настрой. когда каждый знает, что за ним тоже кто-то следит, не отвлекается.
* проблемы начнут детектится заранее, не дожидаясь «разбора полетов».
* сможете разгрузить менеджеров — им надо лишь в конце дня собрать отчеты.
* бонусом — код-ревью, если на экране «адекват».

Кстати, менеджеры, которые должны подсматривать за исполнителями, в работе которых не очень разбираются, — честные и адекватные, т.к. мотивированы деньгами — я правильно понимаю систему?
По вашему рассказу какая-то странная история получается — дескать у вас в DigitalWand все удаленщики поголовно нечестные и неадекватные. Вы где-то специально их таких набираете? Зачем?
Кстати, интересно, они там пишут, что категория этнической принадлежности, это вообще не про расу. Она не спрашивается у пользователей, а определяется на основании страниц и постов, которые были лайкнуты пользователем.
Satterfield added that the “Ethnic Affinity” is not the same as race — which Facebook does not ask its members about. Facebook assigns members an “Ethnic Affinity” based on pages and posts they have liked or engaged with on Facebook.

«Старый король Карл был убежденный немец и Гогенцоллерн»
Как можно определить, что используется подмена сертификата?
Как технически отслеживались поисковые запросы в Яндекс на межсетевом экране? У них ведь HTTPS, вроде.
вообще-то
все просто
Это особенность консоли (или функции eval) — eval интерпретирует фигурные скобки не как объект, а как скобочное выражение. eval("{}") -> undefined

"{}[0]" в начале строки интерпретируется как скобочное выражение за которым следует массив (примерно то же самое как написать ";[0]" ). Ну а то, что [0] == 0 и так все знают. А еще eval возвращает значение последнего выражения. Можно было написать 0 == 0 или ;0 == 0 или {}0 == 0, что тоже выглядит странно, но уже не так эффектно.

В правой части {}[0] это нормальный statement, где из пустого объекта пытаются получить свойство 0, результатом которого является, естественно, undefined. Естественно, что 0 != undefined.

Добавление круглых скобок снаружи превращает все выражение в statement, поэтому вычисляется как положено. eval("({})") -> Object
У вас есть веб-приложение, которому нужно вывести файлы Word в формате PDF… Та же задача под Linux.

Какие есть варианты?
Хром приостанавливает запуск cross-origin Флеша, размером менее 400x300 с прошлого года. Но делает исключение для Флеша менее 5px, и у которого не может определить размер. Теперь тоже начнёт их блочить.
Как видно, речь идет исключительно про флешовые банеры и аналитику.
Онлайн кинотиатров, игрушечек эти изменения не касаются. Флеш как таковой не выпиливается и не блочится. Заголовок статьи врёт.
В принципе, через год может быть пост: «сообразительная налоговая инспекция напоминает сообразительным пользователям о необходимости самостоятельно декларировать доходы от продажи валюты и заплатить НДФЛ». Сам налог платить вряд-ли придется, учитывая размеры доходов и стандартного вычета, но если протупить со сроками подачи декларации, штраф может прилететь — доступ к счетам у них теперь есть.

Информация

В рейтинге
1 518-й
Зарегистрирован
Активность