
Nomaniba
17.08.2016
01:02:59
end
?
в самих тестах
let(:author) {FactoryGirl.create(:user) }

Google

Zufar @Zuf
17.08.2016
02:28:59
sequence email есть
если сделать
question = create(:question)
create_list :answers, 2 question: question
то все работает и у question.answer[0].user есть пароль
если create(:question, :with_answers), то пароля нет
сами тесты я уже по другому переписал, но интерес остался, почему же есть имейл и нет пароля

ojab
17.08.2016
04:17:03


Evgeny
17.08.2016
04:19:09
)))
Вот смотри я щас прямо делаю тесты экшенов, там в каждом проверка идет может ли залогиненый с правами админа сделать и без, получается по 2 it do в одном describe. Я видел на стэке примеры например просто [actions].each и внутри блока проверять, пишем меньше же верно, но тут уже не особо читаемо становится. С помощью shared_examples не получается уменьшить код т.к. он пишет что внутри it do не работает. В итоге я щас сделал внутри просто обычный метод sign_in и в него все засунул и юзаю его в каждом describe. Такой подход помоему как то противочерит поди рспекам
Короче вот мой не законченный пример https://gist.github.com/EvgenyKungurov/cdc74ec567096426146487295aceffbb

ojab
17.08.2016
04:42:37
и тебя смущает повторение expect(response).to redirect_to '/users/sign_in'?

Evgeny
17.08.2016
04:57:10
Ну это только одна проверка. а их же однотипных может быть много. Ладно как сделаю так сделаю, подскажи вынос в метод sign_in норм практика или не стоит так делать?

ojab
17.08.2016
05:24:06
нормальная
эти проверки нужно в shared examples выносить
с ними какие конкретно проблемы возникли?

Google

ojab
17.08.2016
05:25:24
(ну и require лучше вынести в .rspec, include делать в rails_helper для type: :controller, вместо '/users/sign_in` использовать new_user_session_path)
и в блоках it лучше не писать ничего кроме самой проверки, выносить всё в let/let!/before

Evgeny
17.08.2016
05:29:39

ojab
17.08.2016
05:30:48
в блоках RSpec.shared_examples и иже it ок работает

Evgeny
17.08.2016
05:31:22
ок

Aleksandr
17.08.2016
06:01:50
Научите писать тесты :) вот не могу полюбить писать тесты, а очень надо :(

Andrey ?
17.08.2016
06:02:10
Попробуй rspec
Я вот не любил писать тесты, а потом написал и за первый прогон поймал 6 багов

Alex
17.08.2016
06:04:28
Я так уже без теста разрабатывать не могу.
Логику удобно тестировать/проверять когда у тебя в базе только то что ты там создал, а не весь dev
Иногда получается накидать тест до реализации но не всегда.

Aleksandr
17.08.2016
06:05:07

Alex
17.08.2016
06:05:27

Aleksandr
17.08.2016
06:05:50
При этом не я этот код писал, а индусы, белорусы, россияне, Украина
Там до сих пор rails 4.0.13 :)

Alex
17.08.2016
06:06:26
Юзаешь guard + guard-rspec
либо если минитест то guard + guard-minitest соответственно.

Google

Aleksandr
17.08.2016
06:07:48

Amir
17.08.2016
06:11:29
после неудачного, ошибочного мержа , и прочей тупости со сменой адреса репозитория
возникла такая ошибка
master -> master (non-fast-forward)
другой рабочий бранч востановил, а вот это как исправить?
надо привести в полную копию мастера из репозитория

ojab
17.08.2016
06:12:55
git reset --hard origin/master?
(вместо origin — твой remote, вместо master — желаемый бранч, если они отличаются)

Alex
17.08.2016
06:28:03

Aleksandr
17.08.2016
06:29:35

Alex
17.08.2016
06:30:48
Тебе помимо рельс, надо убедиться что нет дырок в гемах.

Aleksandr
17.08.2016
06:31:51

Alex
17.08.2016
06:32:33
Написать нормальные тесты на большое приложение имхо почти тоже что с нуля писать.
Финансовое приложение без тестов даже на биллинг ?
Уверен что там точно где то неправильно считается, или скоро начнет.

Alex
17.08.2016
06:35:57
Тебе чтобы тесты написать - нужно знать всю бизнеслогику приложения. Я уже не говорю о том что скорее всего у тебя код не рассчитан на тесты, и тестировать сложно будет

Aleksandr
17.08.2016
06:41:22

Evgeny
17.08.2016
06:51:04

Alex
17.08.2016
06:53:34

Evgeny
17.08.2016
06:55:44
А он показывал его код? Как определили что он не подходит, все равно можно же тесты написать и единственное, что на мой взгляд может тормозить это рабочие руки и время, которые могли бы это все написать и где что отрефакторить

Amir
17.08.2016
07:10:08
рабочую копию так востановил
git reset —hard origin/work
если сделать так
git reset —hard origin/master
то обе ветки выдают такую ошибку
поэтому обратно делаю git reset —hard origin/work

Google

Amir
17.08.2016
07:14:49
походу понял, надо сделать так чтобы мастер указал на последний коммит, судя по всему
но это надо провернуть на боевом сервере :)))
там желательно не делать чекаут на другую ветку, т.к. будут глюки

Danila
17.08.2016
07:20:41
на ремоут резетиться так себе затея
резетить лучше свою ветку сильно назад и подтягивать изменения из ремоута

ojab
17.08.2016
07:21:55
в чём сакральный смысл этого действия?
и что плохого в ресете на remote?

Amir
17.08.2016
07:22:18
пришлось чекаутит на мастер и там сделать резет оригин мастер
вроде помогло
надеюсь никто не заметил, очень быстро сделал

Danila
17.08.2016
07:23:02
да ничего плохого, все норм

Amir
17.08.2016
07:23:06
пришлось аж вручную корректировать настройки гит в .git/config
и там добавить страннным образом исчезнувщие бранчи
и все началось из того поменял адрес репозитория с https на git

Admin
ERROR: S client not available

ojab
17.08.2016
07:23:52

Danila
17.08.2016
07:25:43
просто твоё дерево и ремоут это две отдельные сущности, откатывать одного дерево до состояния другого для меня так себе

Amir
17.08.2016
07:26:53
мне походу нужен учебник гит в картинках
а то очень плохо понимаю оказывается
git pull делаешь
он все тянет, мержит автотом, возникают куча конфликтов
отменяешь все
git merge —abort
и тут видишь git status выдает кучу изменений
изменения даже из другой ветки походу, все перемешгалось
уже не понимаю что происходит :)
видит новые файлы, а так же измененные

ojab
17.08.2016
07:30:03

Evgeny
17.08.2016
07:45:14

Amir
17.08.2016
07:47:01

Google

Amir
17.08.2016
07:47:40
git fetch автоматом не мержим а просто тянет вроде

Evgeny
17.08.2016
07:48:34
Я конечно не спец, но я точно помню, что когда последний раз делал пул на рабочем сайте, он выпендривался)
ща гляну доки уж забыл все)
Все верно сказал пул автоматом
А фетч тоже автоматом у теюя что ли сливает?

Amir
17.08.2016
07:53:50
вроде нет

Evgeny
17.08.2016
07:54:24
Тогда зачем делаете git pull ?

Amir
17.08.2016
07:56:49
по ошибке :)
меня там озадачило когда после git merge —abort
который по сути должен был отменить все
мой проект превратился в кашу
показывал кучу изменений из разных веток или что было
потом я просто запутался

Evgeny
17.08.2016
08:00:53
Наверное нужно еще освоить бранчи, чтобы в основну ветку не сливать и в случае чего удалить не боясь за свои данные

Andrew
17.08.2016
08:02:09
проще научиться пользоваться cp и scp, и делать бекапы

Amir
17.08.2016
08:02:49
Вот в руководстве пишут так
git checkout HEAD — файлы копирует файлы из текущего коммита и на сцену, и в рабочую директорию.
какая еще сцена и директория

ojab
17.08.2016
08:03:15
прозреваю staging

Amir
17.08.2016
08:03:19
есть оказывается понятие сцены и рабочей директории

ojab
17.08.2016
08:03:32
но вообще не стоит читать русскую документацию

Evgeny
17.08.2016
08:04:35
На сцену и сплясать с бубном

Zufar @Zuf
17.08.2016
08:15:34

ojab
17.08.2016
08:28:36
Nil
А покажи фабрику question?

Zufar @Zuf
17.08.2016
08:29:47
FactoryGirl.define do
sequence :title do |n|
"Question N #{n} title"
end
factory :question do
title
body "MyText"
user
trait :with_answers do
after(:create) do |question|
create_list :answer, 2, question: question
end
end
end
factory :invalid_question, class: "question" do
title nil
body nil
user
end
end

ojab
17.08.2016
08:29:55
лучше в gist такое кидать
а в answer что?

Zufar @Zuf
17.08.2016
08:31:40
FactoryGirl.define do
factory :answer do
body "MyText"
question
user
end
end

ojab
17.08.2016
08:31:59
гм