Rails minitest — могу ли я определить всех пользователей, кроме одного?

#ruby-on-rails #minitest

#ruby-на-рельсах #минимальный тест

Вопрос:

Я новичок в minitest, и я пытался найти это, но, похоже, не могу найти ответа на этот вопрос.

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

Я использую policy-assertions gem для проверки моей политики Pundit. Я знаю, что мог бы создать тест, в котором я проверяю, что все пользователи (nil) могут создавать комментарии и т.д. Затем протестируйте, что :guest не может, но я подумал, что должен быть способ пропустить :guest пользователя.

Комментарии:

1. Пожалуйста, объясните подробнее. Хотите ли вы пропустить гостевого пользователя из результатов запроса или можете пропустить гостевого пользователя во время выполнения теста?

2. Мне нужен тест, который подтверждает, что все пользователи, кроме:гость, могут добавить комментарий и что пользователь: гость НЕ может добавить комментарий.

3. Вы должны написать 2 теста для каждого случая CRUD. т.е. 1. Войдите в систему от обычного пользователя, создайте комментарий, проверьте ответ (assert_response) и базу данных (assert_difference). 2. Войдите в систему от гостевого пользователя (или, возможно, гость не может войти в систему), попробуйте создать комментарий, ответ должен быть 404/403, также убедитесь, что в базе данных нет новой записи.

4. У каждого пользовательского приспособления есть авторизация для комментариев. : гость,: администратор,: владелец и т.д. Я могу вручную протестировать для каждого пользователя, кроме: guest. Я ищу тест, который утверждает, что все пользователи, кроме: гость, могут комментировать и т.д.

5. Я полагаю, что в этих файлах рассказывается, как тестировать новые и создавать для разных типов пользователей, github.com/ksimmons/codedorm/blob/master/test/policies /. … Обратите внимание, что у некоторых есть assert_permit , а у другого есть refute_permit