@proRuby

Страница 767 из 1594
Anton
27.09.2017
09:20:48
ты чо, серьезно expose не тестишь?
нет, я не пишу на рельсе ?

Alex
27.09.2017
09:20:52
так при чем тут TDD?
ну типа мне надо проверку что контроллер чето там expose

я про ханами же ну.

Google
Alex
27.09.2017
09:21:44
тьфу, экшон

Anton
27.09.2017
09:22:07
ну, если честно, то не, я не юзаю это

потому что тупо смысла не вижу

но я с удовольствием послушал бы доводы за

Alex
27.09.2017
09:22:33
ну, если честно, то не, я не юзаю это
а как ты во вьюшку прокидываешь данные?

Anton
27.09.2017
09:22:51
ааа

бля

очень плохо

короче тестирую я все это

Alex
27.09.2017
09:23:13
Anton
27.09.2017
09:23:19
да я о другом подумал

сейчас покажу

короче вот так, но это пиздец не круто и надо бы переписать https://github.com/ossboard-org/ossboard/blob/master/spec/web/controllers/tasks/index_spec.rb#L10

Google
Anton
27.09.2017
09:24:26
о, лол, 9 месяцев тестам

короче, это не правильные тесты

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

Alex
27.09.2017
09:25:34
> доставание в отдельный функциональный объект ??

я не понимаю почему я просто в юните expose проверить не могу

причем тут объект

там может быть params.errors

а это чисто логика экшона

Anton
27.09.2017
09:26:20
я не понимаю почему я просто в юните expose проверить не могу
да, ты в логике проверяешь, что оно там что-то держит

Alex
27.09.2017
09:26:28
и хочу нормальный матчер

Anton
27.09.2017
09:26:34
но саму логику доставания правильных данных проверять в моем случае - токое

Alex
27.09.2017
09:27:04
если у меня экшон вообще не expose то мне напишет undefined метод.

Не информативно ни разу.

Anton
27.09.2017
09:27:24
ну, там беда в том, что надо мутировать экшен, а потом тестировать его

Alex
27.09.2017
09:27:42
объясни.

Мы же только call его и все.

Anton
27.09.2017
09:28:45
ну смотри, ты как тестируешь все это: action.call action.posts

call мутирует action объект, создает все геттеры

Alex
27.09.2017
09:29:09
expect action to define_method(:posts) ?

Anton
27.09.2017
09:29:19
ну

Google
Alex
27.09.2017
09:29:21
потом уже expect(action.send(;posts)).to eq posts

мы вообще инстанс экшона получаем через call.

Anton
27.09.2017
09:30:02
так заполнение и есть мутация

мы вообще инстанс экшона получаем через call.
не, мы через call получаем его результат

Alex
27.09.2017
09:30:14
ну учитывая что оригинального объекта у нас не было

мы его получаем а не мутируем.

Class.call -> instance

Anton
27.09.2017
09:31:16
возможно мы о разном говорим, но call вернет массив данных + "заполнит" (замутирует считай) все expose геттеры

Alex
27.09.2017
09:31:38
аа, точно

Anton
27.09.2017
09:31:43
Class.call -> instance
class.new -> instance instance.call -> [staus, env, body] + instance.posts

Alex
27.09.2017
09:31:52
забыл, сорян

Alex
27.09.2017
09:31:56
мало практики пока что.

Anton
27.09.2017
09:32:05
ну как бы вот так выглядит экшен let(:action) { described_class.new }

мало практики пока что.
да все норм, не переживай

так вот

Alex
27.09.2017
09:32:14
усе, молчу

я лох и апазроился.

Anton
27.09.2017
09:32:20
ты натолкнул на хорошую идею

Alex
27.09.2017
09:32:43
Google
Anton
27.09.2017
09:33:25
ты натолкнул на хорошую идею
можно поковыряться и посмотреть на уровне класса какие expose геттеры нужно будет сделать и написать матчер типо: expect(action).to build_exposes(:posts, :users, etc)

но я хз, стоит ли или нет

Alex
27.09.2017
09:35:34
я правда все еще не понял чем мой матчер плох

Anton
27.09.2017
09:36:14
как мне кажется, тупо избыточен

и на самом деле, есть один супер важный вопрос, если говорить про тестирование экшенов

о котором я уже год думаю

как правильно тестировать валидационную схему

Alex
27.09.2017
09:37:06
адок

Admin
ERROR: S client not available

Anton
27.09.2017
09:37:09
потому что каждый раз ее проверять на каждое поле - ебанешься

у меня есть идея тестировать АСТ от dry-v, но что-то пока руки не доходят проверить

Alex
27.09.2017
09:37:32
большинство кейсов valid? / invalid

и наверное expose свои ошибки

Anton
27.09.2017
09:37:57
ну как бы да

только проблема в том, что делать, когда у тебя схема на 20+ строк

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

Alex
27.09.2017
09:38:50
берем самый распространенный кейс и на него матчер.

Anton
27.09.2017
09:39:02
Alex
27.09.2017
09:39:09
который напишем конечно же!

Google
Anton
27.09.2017
09:39:24
ну а как он выглядеть должен?

Alex
27.09.2017
09:40:32
ну а как он выглядеть должен?
обычный тест на валидации

как shoulda matchers какойнить

ну а как он выглядеть должен?
https://github.com/mcorp/shoulda-hanami Нашел

Anton
27.09.2017
09:42:29
ну хз

но можно посмотреть, спасибо!

Anatoly
27.09.2017
09:51:53
Ребят, очень интересная ошибка в продакшене стала появляться. Мы можем сбилбидть какую-то сущность, также сбилдить для нее нестед атрибуты, потом вызывать на ней update! и запись будет создана. Но в продакшене очень часто при подобном раскладе вылетают EROR: null value in column "word_id" violates not-null constraint / PG::NotNullViolation: ERROR: null value in column "word_id" violates not-null constraint Куда копать?

word - это нестенд сущность, и т.к. она не персистед, то айдшников нет. Но они же и не нужны, ведь update! сделает create!

wi11son
27.09.2017
09:57:18
Продублирую сюда, ребзя Всем привет! Nick Sutterer (не без помощи @davydovanton) добрался до Питера, поэтому идём его сегодня гулять. Стартуем в 19.00 в Pitas'e (Невский 65). Возможно мы потом двинем в какой-нибудь бар, так что следите за перемещениями в телеграм-чатике: t.me/saintprug

Максим
27.09.2017
09:57:59
а кто это

Alex
27.09.2017
09:58:30
он либо должен позволять null, либо туда должно что тописаться

Anatoly
27.09.2017
09:59:04
И что? У меня же происходит создание, откуда у меня возьмется id при создании.

wi11son
27.09.2017
09:59:13
а кто это
автор Trailblazer

Максим
27.09.2017
09:59:22
спасбо

Nikolay
27.09.2017
10:00:08
оч. позитивный чел оказался

Alex
27.09.2017
10:00:26
И что? У меня же происходит создание, откуда у меня возьмется id при создании.
значит меняй бизнеслогику. Делай в миграции что word_id может быть пустым

хотя с nested сущностями я считай что не работал

Anatoly
27.09.2017
10:04:14
значит меняй бизнеслогику. Делай в миграции что word_id может быть пустым
id у сущности не может быть пустым, это глупости.

Alex
27.09.2017
10:04:45
id у сущности не может быть пустым, это глупости.
в зависимости от логики, у post вполне может отсутствовать author_id.

Но я с nested сущностями мало работал.

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