Я предпочитаю использовать «почти TDD» в своем повседневном рабочем процессе. И вот на днях столкнулся с этой проблемой.
Представьте себе команду с такой подписью.
protected $signature = 'sync:store {--storeId= : Sync stores}';
В моем наборе тестов я добавил
$this->artisan('sync:store', [
'--storeId' => [1],
]);
Все в порядке, НО на следующий день команда НЕ работала. Я проглядел * в своей подписи. Поэтому тест был зеленым, а вариант не работал.
Есть ли способ проверить, что именно запись массива работает так, как нужно? Потому что это реальная проблема, с которой я столкнулся.
Я не вижу * в подписи? Я вижу, вы тестируете команду, отличную от той, которую вы опубликовали?
@Loek, вот что я говорю :) Я упустил из виду * в --storeId. И теперь похоже, что нет возможности проверить это.
@JulienMetral да. Нет, о чем я спрашиваю :D
@Look, проблема в том, что тест зеленый, хотя команда не работает.
@Д.Р. вам нужно добавить больше кода. Я не вижу подписи, я не вижу отсутствующих * и не вижу подтверждений тестов?
@Loek Первый блок кода (выделен серым цветом) — это подпись. второй серый блок — тест. Вы обязательно должны это увидеть :D
Но подпись sync:store и тест идет sync:shopify-store-order-transactions? И ctrl + f * ничего не возвращает в вашем коде?
@Loek, о, извини :) Пропустил. Я обновил команду artisan. И да, вы НЕ должны видеть *. И теоретически тест должен провалиться, но он проходит. В этом проблема.
Хоть проходит? Теперь вы запускаете команду, а потом... Ничего? Тест ничего не утверждает. Он просто проверяет, может ли он запустить команду, и это, насколько я знаю. Другими словами, тест может не провалиться, но может и не пройти, если вы ничего не утверждаете. Затем он отображается как завершенный тест без проверок.






Вы просмотрели здесь ?