Регистрация  |  Вход

Тестирую портального юзера в тесте и теперь я должен иметь Роль???

Всем привет,

волей тяжелого рока, попался мне чужой мутный тест класс, который создает портального юзера и что-то там делает с ним.

при запуске теста система намекнула, что мне не плохо бы иметь роль, раз я (запуская тест) создаю ассаунт к которому будет принадлежать этот тестовый портальный юзер. ну ладно, "все по-уставу", так и должно быть, дал себе Роль.

но вот теперь думаю, притащу я этот тест класс в Орг и через секунду после этого, другой сисадмин запустит все тесты в ПРоде, и этот тест упадет, так как у того юзера нет роли...

ерунда какая-то, давать всем сисадминам Роли что ли?

Всем привет,

волей тяжелого рока, попался мне чужой мутный тест класс, который создает  портального юзера и что-то там делает с ним.

при запуске теста система намекнула, что мне не плохо бы  иметь роль, раз я (запуская тест) создаю ассаунт к которому будет принадлежать этот тестовый портальный юзер. ну ладно, "все по-уставу", так и должно быть, дал себе Роль.

но вот теперь думаю, притащу я этот тест класс в Орг и через секунду после этого, другой сисадмин запустит все тесты в ПРоде, и этот тест упадет, так как у того юзера нет роли...

ерунда какая-то, давать всем сисадминам Роли что ли?

Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....

Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....

Den Brown
Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....

Юзер под которым запускается тест должен иметь роль.

[quote="Den Brown"]Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....[/quote]

Юзер под которым запускается тест должен иметь роль.

Den Brown
Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....

Именно так я и делал. Отлично работает.

[quote="Den Brown"]Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....[/quote]
Именно так я и делал. Отлично работает.

Кстати на будущее - все тесты должны проходить внутри RunAs под созданных пользователем (например созданным админом) в том числе и подготовка тестовых данных до test.startTest(). Просто запускать тесты под текущим пользователем это уже надежда на удачу. Сколько раз было, что клиенты жаловались что тесты при деплое на прод валятся, хотя на сандбоксе отрабатывают на ура. В итоге оказывалось что деплой, а следовательно и тесты, проводил пользователь с ограниченными правами (урезанный админ).

Вот тут моя старая статья на эту тему
http://salesforce-developer-rus.blogspot.com/2013/01/testing-apex-code.html

Кстати на будущее - все тесты должны проходить внутри RunAs под созданных пользователем (например созданным админом) в том числе и подготовка тестовых данных до test.startTest(). Просто запускать тесты под текущим пользователем это уже надежда на удачу. Сколько раз было, что клиенты жаловались что тесты при деплое на прод валятся, хотя на сандбоксе отрабатывают на ура. В итоге оказывалось что деплой, а следовательно и тесты, проводил пользователь с ограниченными правами (урезанный админ).

Вот тут моя старая статья на эту тему
http://salesforce-developer-rus.blogspot.com/2013/01/testing-apex-code.html

Совсем не давно решал точно такую же проблему для партнер юзера,я просто добавил роль через UI Salesforce к текущему юзеру роль,и потом делал деплой,так же для деплоя потребовало включить Knowledge User в юзере задеплоил.

Совсем не давно решал точно такую же проблему для партнер юзера,я просто добавил роль через UI Salesforce к текущему юзеру роль,и потом делал деплой,так же для деплоя потребовало включить Knowledge User в юзере задеплоил. 

Dmitry Shnyrev
Den Brown
Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....

Именно так я и делал. Отлично работает.

вроде сработало.

по поводу:

Dmitry Shnyrev
Кстати на будущее - все тесты должны проходить внутри RunAs под созданных пользователем (например созданным админом) в том числе и подготовка тестовых данных до test.startTest().

- в статье не акцентировано то, что RunAs нужно делать также и именно для тест даты.

- ничего не сказано о том, что можно (и нужно в данном случае) вставить дату под одним юзером, а тестовые операции выполнять уже под другим (портальным юзером например).


Sergey Prichepo
lesforce к текущему юзеру роль,и потом делал деплой,так же для деплоя потребовало включить Knowledge User в юзере задеплоил.

получается что текущему юзеру (запустившему тест) вставляют роль (если ее нет), а затем удаляют?

[quote="Dmitry Shnyrev"][quote="Den Brown"]Или перед вставкой тест даты, создать юзера с ролью, от него вставить записи, закрыть его "сессию" ну и дальше продолжить тест....[/quote]
Именно так я и делал. Отлично работает.[/quote]

вроде сработало.

по поводу:
[quote="Dmitry Shnyrev"]Кстати на будущее - все тесты должны проходить внутри RunAs под созданных пользователем (например созданным админом) в том числе и подготовка тестовых данных до test.startTest(). [/quote]

- в статье не акцентировано то, что RunAs нужно делать также и именно для тест даты.

- ничего не сказано о том, что можно (и нужно в данном случае) вставить дату под одним юзером, а тестовые операции выполнять уже под другим (портальным юзером например).


[quote="Sergey Prichepo"]lesforce к текущему юзеру роль,и потом делал деплой,так же для деплоя потребовало включить Knowledge User в юзере задеплоил.[/quote]

получается что текущему юзеру (запустившему тест) вставляют роль (если ее нет), а затем удаляют?

Den Brown
получается что текущему юзеру (запустившему тест) вставляют роль (если ее нет), а затем удаляют?

Получается костыль! :)

[quote="Den Brown"]получается что текущему юзеру (запустившему тест) вставляют роль (если ее нет), а затем удаляют?[/quote]
Получается костыль! :)