Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Conociendo Minitest
Search
Mario Alberto Chávez
July 11, 2013
Technology
0
190
Conociendo Minitest
Introducción básica a Minitest, la librería de pruebas estándar desde Ruby 1.9
Mario Alberto Chávez
July 11, 2013
Tweet
Share
More Decks by Mario Alberto Chávez
See All by Mario Alberto Chávez
Ruby Internals V3
mario_chavez
0
45
Beyond the Rails Way
mario_chavez
1
67
Elm, una mejor manera de hacer frontend
mario_chavez
0
170
Rediscovering ActiveRecord
mario_chavez
2
300
Intro to Elixir
mario_chavez
0
120
From Ruby to Elixir: Developing Web Applications
mario_chavez
0
310
Pitch para Startups
mario_chavez
1
83
Understanding KPIs
mario_chavez
1
58
Logic Programming
mario_chavez
0
83
Other Decks in Technology
See All in Technology
JAWS-UG Bedrock Claude Night
yamahiro
3
720
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
160
Documentação de Produtos: Artefatos essenciais na prática
rigolon
1
130
Cloud Service Mesh に触れ合う
phaya72
1
230
いつか使うかも貯金してたらめちゃめちゃ機能が増えてた話
riyaamemiya
0
630
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
320
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.7k
開発パフォーマンスを最大化するための開発体制
ham0215
7
1.1k
止まらないLinuxシステムを構築する_高信頼性クラスタ入門
koedoyoshida
2
440
データベース02: データベースの概念
trycycle
0
180
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
5
18k
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.3k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
45
9.7k
GraphQLとの向き合い方2022年版
quramy
33
12k
KATA
mclloyd
16
12k
Being A Developer After 40
akosma
66
580k
Making the Leap to Tech Lead
cromwellryan
125
8.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
A better future with KSS
kneath
231
16k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
The Invisible Side of Design
smashingmag
294
49k
Transcript
Minitest Mario A Chávez @mario_chavez
¿Quién prueba sus aplicaciones?
¿Quién prueba sus aplicaciones de forma automática?
- Test::Unit - RSpec -Minitest
Incluido como librería estándar desde Ruby 1.9
Test::Unit es historia, Minitest es compatible
Rspec bloated!
Minitest es pequeño y rápido, fácil de extender
Minitest es Ruby!
require 'minitest/autorun' class TeaTest < Minitest::Test def test_green_tea_temperature hot_tea =
Tea.new :green assert(hot_tea.temperature == 150) end end
require 'minitest/autorun' class TeaTest < Minitest::Test def test_green_tea_temperature hot_tea =
Tea.new :green assert_equal 150, hot_tea.temperature end end
Pero me gusta mas la sintaxis Spec!
require 'minitest/autorun' describe Tea do describe ‘Green tea’ do subject
{ Tea.new :green } it ‘temperature should be right’ do subject.temperature.must_equal 150 end end end
¿Qué? ¿doble “describe”? Vamos a extender Minitest
class Minitest::Spec class << self alias :context :describe end end
require 'minitest/autorun' describe Tea do context ‘Green tea’ do subject
{ Tea.new :green } it ‘temperature should be right’ do subject.temperature.must_equal 150 end end end
Matchers personalizados
require 'minitest/assertions' module Minitest::Assertions def assert_include(expected, actual) expected.is_a?(Enumerable) && expected.include?(actual)
end end require 'minitest/autorun' class TeaTest < Minitest::Test def test_available_teas_include_green teas = [:camomille, :green] assert_include teas, :green end end
require 'minitest/spec' module Minitest::Expectations Enumerable.infect_an_assertion :assert_inclu de, :must_include end require
'minitest/autorun' describe Tea do it 'available teas include green' do teas = [:camomile, :green] teas.must_include :green end end
Múltiples reporters
$ ruby minitest.rb -v Run options: -v --seed 58567 #
Running tests: Tea::Green tea#test_0001_temperature should be right = 0.00 s = . TeaTest#test_green_tea_temperature = 0.00 s = . Finished tests in 0.000986s, 2028.3976 tests/s, 2028.3976 assertions/s. 2 tests, 2 assertions, 0 failures, 0 errors, 0 skips
$ ruby minitest.rb Run options: --seed 36590 # Running: .
Finished in 0.001162s, 860.5852 runs/s, 0.0000 assertions/s. $ ruby minitest.rb -p Run options: -p --seed 8992 # Running: . Fabulous run in 0.001219s, 820.3445 runs/ s, 0.0000 assertions/s.
Minitest ejecuta las pruebas de forma aleatoria
También las puede ejecutar de forma paralela
Incluye: - Benchmark - Mocks -Stubs
Rails 4 usa Minitest con sintaxis de Test::Unit
Recursos •Repo de Git: https://github.com/seattlerb/minitest •Guía: http://mattsears.com/articles/2011/12/10/ minitest-quick-reference •Minitest-rails: https://github.com/blowmage/
minitest-rails •Como probar Rails con Minitest: http:// blog.crowdint.com/2013/06/14/testing-rails-with- minitest.html
Gracias Mario A Chávez @mario_chavez