Tim Schraepen & Wouter Groeneveld
30/01/2017
https://wgroeneveld.github.io/tdd-course/
echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
9:10 | Laptop setup double check |
9:20 | Unit Testing |
10:00 | Oefening: Basic Unit testing (JS) |
11:00 | Unit Testing en TDD |
11:10 | Oefening: Legacy Code 1 (PHP) |
11:30 | Code Retreat! |
12:00 | Lunch |
13:30 | Soorten testen |
14:00 | Oefening: Integrated TDD (Java) |
16:50 | Wat hebben we geleerd? |
Oefening: basic testing in Javascript
makkelijk genoeg voor alle niveau's
Oefening 1: speculaas
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
Beschrijft gedrag
Hoe runnen? runtests.html
Structuur veranderen,
zonder inhoud te wijzigen!
Voel jij je veilig genoeg zonder testen?
[TestFixture]
public class MyTestClass {
[Test]
public void SomeMethodShouldReturnTrueIfSomeCondition() {
var result = SomeMethod();
Assert.That(result, Is.EqualTo(expected));
}
}
Gebruik tools van IDE:
public function testStub()
{
$mock = $this->createMock(SomeClass::class);
$mock->method('doSomething')->willReturn('foo');
$this->assertEquals('foo', $mock->doSomething());
}
Hoe runnen?
phpunit [dir]
phpunit dir/testfile.php
PHPUnit 4.3.5 by Sebastian Bergmann. ....................... Time: 105 ms, Memory: 2.75Mb OK (23 tests, 25 assertions)
Details: zie Mocks aren't stubs by Martin Fowler.
Om jullie te helpen om sneller te ontwikkelen:
Shortcuts cursus met IntelliJ
ReSharper cheat sheet keymap
http://junit.org/junit4/javadoc/latest/
http://joel-costigliola.github.io/assertj/
import static org.assertj.core.api.Assertions.assertThat;
@Test
public void methodShouldReturnTrueIfBehaviourCorrect()
{
bool result = method();
assertThat(result).isTrue();
}
Hoe runnen? Gebruik tools van IDE:
Growing Object-Oriented Software Guided by Tests
Clean Code
Working Effectively With Legacy Code
Tim en Wouter zijn BAZEN
Test Driven Development zorgt voor:
- Beter design (loose coupling, single responsibility)
- Leesbare code
- Een vangnet voor Legacy code
Test Driven Development is...
- ...helemaal niet zo scary!
- ...toegankelijk voor studenten
- ...zoals we het vandaag gezien hebben overdraagbaar op studenten