Тестирование контроля доступа с помощью CanCan и Cucumber - PullRequest
1 голос
/ 28 апреля 2011

Я настраиваю некоторые тесты для приложения rails 3, используя Devise для аутентификации, CanCan для контроля доступа и Cucumber для интеграционного тестирования.В данный момент я работаю над следующим тестом, чтобы проверить правильность контроля доступа (очень просто на данный момент):

Feature: Viewing case list
  In order to view my cases
  As a IMEBase administration
  I want to list all cases

Background: Logged In
  Given a logged in user with company_id "1"

Scenario: View cases
  Given all the following cases exist:
    | claim_number | requestor | claimant   | company_id |
    | Test Case    | Acme      | John Doe   | 1          |
    | Another Case | Yahoo     | Stan Smith | 1          |
    | Hidden Case  | Acme      | Steve Jobs | 2          |
  When I go to the cases page
  Then I should see "Test Case"
  And I should see "Another Case"
  And I should not see "Hidden Case"

На данный момент моя модель способностей CanCan просто ограничивает доступ к случаям на основе company_idпользователя и дела.Когда я пытаюсь сделать это в браузере, с пользователем для идентификатора компании 1, он работает нормально, может видеть только случаи с идентификатором компании 1. Однако, когда я запускаю тесты, Cucumber терпит неудачу в последний раз (например, он видит Test Case, AnotherCase and Hidden Case).

Я начинаю подозревать, что могу пытаться сделать что-то, что просто не работает (я знаю, что есть некоторые проблемы с devise и CanCan).Должно ли это быть в состоянии работать?Если да, то какая подсказка, что может быть не так?

...