@proRuby

Страница 138 из 1594
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), то пароля нет

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

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
с ними какие конкретно проблемы возникли?
Писал что то на подобии, что в it do не работает, только в блоке describe самом. Спс за помощь, отрефакторю все это дело

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
А когда 3 года проекту и кода написано масса, что делать?
Использовать систему тестов которая там есть. PS Спеку дофигамилион лет.

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

Там до сих пор rails 4.0.13 :)

Alex
17.08.2016
06:06:26
Иногда получается накидать тест до реализации но не всегда.
И когда не получается пишешь их в паре, думаешь что и как, юзаешь binding.pry (из гема pry-byebug) пишешь код прямо в консоли смотришь что как, если ок, то вставляешь код из консоли в код, продолжаешь.

Юзаешь guard + guard-rspec

либо если минитест то guard + guard-minitest соответственно.

Там до сих пор rails 4.0.13 :)
Ты так говоришь как будто это что то плохое.

Google
Aleksandr
17.08.2016
06:07:48
Ты так говоришь как будто это что то плохое.
Ну как бы rails 4.0.x не поддерживают, минимум LTS 4.2, хотя бы на него перевести проект, чтобы получать фиксы безопасности

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 — желаемый бранч, если они отличаются)

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
Тебе чтобы тесты написать - нужно знать всю бизнеслогику приложения. Я уже не говорю о том что скорее всего у тебя код не рассчитан на тесты, и тестировать сложно будет

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/master?
это чето не помогает

рабочую копию так востановил 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
просто твоё дерево и ремоут это две отдельные сущности, откатывать одного дерево до состояния другого для меня так себе
wtf отдельные сущности? HEAD переключается на другой коммит, какая разница в каком он бранче?

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
На сцену и сплясать с бубном

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
гм

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