@proRuby

Страница 360 из 1594
Dmitriy
28.12.2016
11:43:30
именно на новый объект

I
28.12.2016
11:44:44
ну, можно смотреть перед тестом, сколько и какие были id у твоих Achievement'ов

на основании этого решать - новый у тебя объект или нет

Dmitriy
28.12.2016
11:45:39
ну так сложнее помоему

Google
Alex
28.12.2016
11:47:00
ну так сложнее помоему
удивительно правда?

Убедись что он редиректит на тот урл что ты ожидаешь

expect(response).to redirect_to(achievment_path(achievement))

Dmitriy
28.12.2016
11:47:46
убеждаюсь expect(response).to redirect_to(assigns(:achievement))

Alex
28.12.2016
11:47:55
Это ты в кишки контроллера лезешь

Ты когда хочешь убедиться что человек не предатель, скальпуешь его?

Dmitriy
28.12.2016
11:48:35
post :create, params: {achievement: FactoryGirl.attributes_for(:achievement)} я же не могу обратиться к achievement

как

Alex
28.12.2016
11:48:51
ты можешь в базе найти

Achievement.first потому что других нет

Dmitriy
28.12.2016
11:48:57
а

ну это да

Alex
28.12.2016
11:49:51
теперь контроллеру не обязательно объявлять инстанс переменную например

Google
Alex
28.12.2016
11:50:05
как он это сделает это его забота, ты только проверяешь что он сделал то что ты ожидал.

В конце концов какая разница кто сидит за компьютером, кот или человек, если задачи выполняются в срок?

Ivan
28.12.2016
11:58:20
ну Achievment.first првоерять по моему не лучший кейс

лучше проверить что конкретно создался achievment который тебе нужен

Alex
28.12.2016
11:58:59
ну Achievment.first првоерять по моему не лучший кейс
Если он создается один единственный, то нормальная практика.

Если он создается не один единственный и попадет не тот что надо, не совпадут ожидаемый и реальный роут

и ты это опять же увидишь. Так что конкретно здесь оно эффективно работает.

Как вариант можно юзать expect {}.to change

Alexander
28.12.2016
11:59:44
В конце концов какая разница кто сидит за компьютером, кот или человек, если задачи выполняются в срок?
там один парень автоматизировал тесты и нихрена не делал на работе 6 лет. молодец, но печально то, что узнали и уволили

Alex
28.12.2016
12:00:15
Он выполнял свою работу качественно?

Если да, то проблемы не вижу. Просто начальство не ожидало что так можно.

Alexander
28.12.2016
12:00:49
Он выполнял свою работу качественно?
ожидали, что будет вручную тестировать. а он автоматизировал без согласования. 6 лет претензий не было, так что полагаю, что качественно.

Alex
28.12.2016
12:01:12
Зачем тестировать вручную то что можно автоматизировать? Work smart no hard.

Alexander
28.12.2016
12:01:19
Если да, то проблемы не вижу. Просто начальство не ожидало что так можно.
да это понятно. но оно могло осознать и сделать что-то приятное для него, или просто хотя бы оставить, как спеца, а не уволнять

Alex
28.12.2016
12:01:21
Я тоже вроде натыкался на эту историю.

Alexander
28.12.2016
12:01:39
ему хреново ещё то, что он за 6 лет не практиковался в программировании, а действительно фигнёй страдал, развлечениями

Alex
28.12.2016
12:01:56
Сам виноват.

Alexander
28.12.2016
12:02:01
Я тоже вроде натыкался на эту историю.
да, популярная была полгода назад примерно

Alexander
28.12.2016
12:03:49
Ну платило хорошо, особенно относительно трудозатрат, близких к нулю

Google
Dmitriy
28.12.2016
12:13:29
а нет в rspec expect{}.to not_change

Alex
28.12.2016
12:13:44
.not_to ....

Dmitriy
28.12.2016
12:13:44
a то change by(0)

expect { post :create, params: {achievement: FactoryGirl.attributes_for(:public_achievement, title: '')} }.not_to change(Achievement, :count)

работает, спасибо!

Alex
28.12.2016
12:18:00
let(:new_achievement_attributes) { attributes_for :public_achievement, title: '' }

post :create, achievement: new_achievement_attributes

Dmitriy
28.12.2016
12:24:23
ну да, сейчас будет

все DRY

Alex
28.12.2016
12:27:53
это не DRY

DRY - Dont repeat yourself, т.е не дублируй код.

А здесь скорее просто чистенько.

Dmitriy
28.12.2016
12:28:11
ну у меня много где используется этот код

Alex
28.12.2016
12:28:26
У каждого свой стиль написания тестов, но мне кажется логичным в let вытащить чтобы не засорять.

Dmitriy
28.12.2016
12:28:26
context 'valid data' do let(:valid_data) {FactoryGirl.attributes_for(:achievement)} it 'redirect to new achievement path' do post :create, params: {achievement: valid_data} expect(response).to redirect_to(assigns(:achievement)) end it 'new record in the database' do expect { post :create, params: {achievement: valid_data} }.to change(Achievement, :count).by(1) end end

Alex
28.12.2016
12:28:33
Ага.

valid data new record in database

что это значит?

Dmitriy
28.12.2016
12:29:20
потом поправл, проверяю создается ли новая запись в бд

Alex
28.12.2016
12:29:27
вруби —format document и посмотри что за забавные названия ты запилил

Google
Alex
28.12.2016
12:29:36
заодно и поймешь как все это именуется.

Dmitriy
28.12.2016
12:31:26
create new achievement in the database

может по русски писать там

хотя это ахинея

ладно

Alex
28.12.2016
12:33:22
context "with valid data" it "creates new achievement in database"

-> with valid data creates new achievement in database

Суть в том что по мнению создателей rspec ты имел возможность читать тесты как книжку чтобы понять что там происходит и почему.

поэтому эти описания у тебя наслаиваются один к другому и ты получаешь полное название теста с контекстом и понимаешь что он делает.

Конечно ты вправе не писать все это семантически, но стоит хотя бы знать об этой штуке.

Admin
ERROR: S client not available

Dmitriy
28.12.2016
12:36:31
понял, буду придерживаться

а никто не подскажет, как сделать так, чтобы после авторизации в devise sign_in(user), user_id автоматически подставлялся в новые объекты у которые в модели belings_to user

belongs_to

Igor
28.12.2016
14:44:14
Ребята, подскажите. Может кто читал Ruby on rails Tutorial. Там говорится об установке rvm Так вот. У меня что-то не так. ~|⇒ curl -L https://get.rvm.io | bash -s % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 184 100 184 0 0 188 0 —:--:— —:--:— —:--:— 188 100 22921 100 22921 0 0 15780 0 0:00:01 0:00:01 —:--:— 315k Downloading https://github.com/rvm/rvm/archive/master.tar.gz Installing RVM to /home/pentagon/.rvm/ Adding rvm PATH line to /home/pentagon/.profile /home/pentagon/.mkshrc /home/pentagon/.bashrc /home/pentagon/.zshrc. Adding rvm loading line to /home/pentagon/.profile /home/pentagon/.bash_profile /home/pentagon/.zlogin. Installation of RVM in /home/pentagon/.rvm/ is almost complete: * To start using RVM you need to run source /home/pentagon/.rvm/scripts/rvm in all your open shell windows, in rare cases you need to reopen all shell windows. # pentagon, # # Thank you for using RVM! # We sincerely hope that RVM helps to make your life easier and more enjoyable!!! # # ~Wayne, Michal & team. In case of problems: https://rvm.io/help and https://twitter.com/rvm_io ~|⇒ rvm get stable zsh: command not found: rvm

I
28.12.2016
14:45:06
ну там же написано все

* To start using RVM you need to run source /home/pentagon/.rvm/scripts/rvm in all your open shell windows, in rare cases you need to reopen all shell windows.

=(

Google
I
28.12.2016
14:45:30
source /home/pentagon/.rvm/scripts/rvm

Александр
28.12.2016
14:45:43
как вставить код в телеграме?

Igor
28.12.2016
14:45:45
Как мне это запустить?

Я пробовал запустить, но ничего.

I
28.12.2016
14:46:23
ну открой новый терминал)

Александр
28.12.2016
14:46:23
в терминале запускаешь

I
28.12.2016
14:46:26
и там посмотри

Александр
28.12.2016
14:46:42
v
28.12.2016
14:46:44
между тремя апострофами вставляй

апостроф - он же backtick

Igor
28.12.2016
14:47:10
~|⇒ source /home/pentagon/.rvm/scripts/rvm ~|⇒

Ничего

Просто пусто

v
28.12.2016
14:47:21
ну все правильно

потом запускай рвм

но зря ты с ним связался

I
28.12.2016
14:47:36
а rvm введи теперь

но зря ты с ним связался
просто если такие вопросы возникают - то переезд на rbenv тоже особо не спасет

v
28.12.2016
14:48:38
ну он один раз поебется и забудет

Igor
28.12.2016
14:48:45
Ввёл. Там много строк и последняя двоеточие

v
28.12.2016
14:48:54
кек

Александр
28.12.2016
14:48:57
начал изучать ROR, бросил, не смог установить rvm :)

Страница 360 из 1594