Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@petrblaho
Last active November 4, 2015 10:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petrblaho/404836728872b51fe9e0 to your computer and use it in GitHub Desktop.
Save petrblaho/404836728872b51fe9e0 to your computer and use it in GitHub Desktop.
MUNI Ruby testing
<section data-markdown>
# Proč testovat
* ověření funkčnosti
* automatizace
* ochrana před regresemi
* druh dokumentace
</section>
<section data-markdown>
# Unit testy
* testují malé bloky kódu - funkce, třídy
* rychlé
* oddělené
</section>
<section data-markdown>
# Integration testy
* testují větší části kódu dohromady
* případně i více služeb dohromady
* mohou být z principu pomalé
</section>
<section data-markdown>
# Acceptance testy
* testují "fíčury" aplikace
* user stories přepsané do testů
</section>
<section data-markdown>
# Test Driven Development (TDD)
* napište testy
* napište kód tak, aby vyhověl testům
* refaktorujte
</section>
<section data-markdown>
# Behaviour Driven Development (BDD)
* napište specifikaci
* napište kód tak, aby vyhověl specifikaci
* refaktorujte
</section>
<section>
<h1>Minitest</h1>
<pre>
<code data-trim class='ruby'>
class Something < Minitest::Test
def test_works
assert_equal 11, 10
end
def test_really_works
assert_equal 11, 11
end
end
</code>
</pre>
</section>
<section>
<h1>RSpec</h1>
<pre>
<code data-trim class='ruby'>
describe "something" do
it "works" do
expect(10).to equal(11)
end
it "really works" do
expect(11).to equal(11)
end
end
</code>
</pre>
</section>
<section data-markdown>
# TDD vs. BDD
* výsledek vs. chování
* assert vs. expect
* osobní / projektové preference
</section>
<section data-markdown>
# Mock
* test doubles
* ```ruby book = instance_double("Book", :pages => 250) ```
* method stubs
* ```ruby allow(die).to receive(:roll) { 3 } ```
</section>
<section data-markdown>
# Mock
* nepřehánějte s mockováním
</section>
<section data-markdown>
# Úkol
* 1D pišvorky - 20 polí v jednom řádku
* třída Game - stav hry
* třída ComputerPlayer - dostane stav hry a provede tah
</section>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment