Last active
November 4, 2015 10:46
-
-
Save petrblaho/404836728872b51fe9e0 to your computer and use it in GitHub Desktop.
MUNI Ruby testing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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