marp |
---|
- 3 вебинара по 2 часа
- теория + live coding
- домашние задания
- RSpec
- FactoryBot
- SimpleCov
- DatabaseCleaner
- Capybara + Selenium
class Podcast
attr_reader :subscribers
def initiliaze
@subscribers = []
end
def subscribe(user)
@subscribers << user
end
end
user = User.new
podcast = Podcast.new
podcast.subscribe user
puts podcast.subscribers.size # => 1
describe "Podcast" do
it "allows to subscribe" do
user = User.new
podcast = Podcast.new
podcast.subscribe user
expect(podcast.subscribers.size).to eq(1)
end
end
- экономия времени
- обнаружение бага на прод дороже
- Страховка от регрессии
- уверенность при рефакторинге
- как документация
- у нас есть автотесты
- нет времени на тесты
- тесты не дают 100% гарантии
- требования быстро меняются
- тесты усложняют рефакторинг
- проект слишком маленький
- нет культуры в команде
it "should calculate sum" do
expect(1 + 1).to eq(2)
end
bundle add rspec
rspec --init
- простой тест
- describe
- context
- формат doc/progress
- методы
- валидация
- scopes
- ассоциации
bundle add rspec-rails
rails generate rspec:install
bundle add factory_bot_rails
rails generate factory_bot:model [Model]