You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _drafts/2019-02-11-tdd.md
+81-1Lines changed: 81 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,4 +27,84 @@ Wykorzystanie metodyki TDD ma zastosowanie tam gdzie możliwe jest otrzymanie wi
27
27
Przechodząc przez kolejne fazy wytwarzania oprogramowania metodyką TDD należy mieć na uwadzę dobre praktyki tworzenia niezależnych, atomowych, czytelnych i krótkich testów jednostkowych. Poza tym dobrze jest znaleźć odpowiedni bilans długości, wielkości i częstotliwości faz cyklów, który wynika z charakterystyki projektu oraz osobistych preferencji programisty. Należy odpo
28
28
29
29
## Przykład
30
-
//TODO
30
+
Aplikacja `Kalkulator` ma posiadać funkcję liczenia `ciągu Fibonacciego` dla zadanej wartości. Programista przystępuje najpierw do `napisania testów` oraz `naiwnej implementacji testowanej funkcjonalności` tak, aby przeprowadzenie testu było możliwe i zakończyło się wynikiem negatywnym.
31
+
32
+
{% highlight kotlin %}
33
+
class CalculatorTest {
34
+
35
+
@Test
36
+
fun checkFibonacci() {
37
+
assertEquals(0, Calculator.fibonacci(0))
38
+
assertEquals(1, Calculator.fibonacci(1))
39
+
assertEquals(8, Calculator.fibonacci(6))
40
+
}
41
+
}
42
+
43
+
class Calculator {
44
+
45
+
companion object {
46
+
fun fibonacci(n: Int): Int {
47
+
return -1
48
+
}
49
+
}
50
+
}
51
+
{% endhighlight %}
52
+
53
+
Uruchomione testy dają `wynik negatywny` zatem programista może przejść do fazy `implementacji funkcjonalności`.
54
+
55
+
{% highlight kotlin %}
56
+
class Calculator {
57
+
58
+
companion object {
59
+
fun fibonacci(n: Int): Int {
60
+
if (n == 0)
61
+
return 0
62
+
else if (n == 1)
63
+
return 1
64
+
else
65
+
return fibonacci(n-1) + fibonacci(n-2)
66
+
}
67
+
}
68
+
}
69
+
{% endhighlight %}
70
+
71
+
Po zakończonej fazie implementacji i pozytywnym przejściu wszystkich testów może nastąpić `faza refactoringu`. Programista dostrzega możliwość poprawienia kodu funkcjonalności o przyjmowany i zwracany typ argumentu oraz poprawienie wydajności. Ponadto zwraca uwagę na potrzebę dodania dodatkowych asercji w testach.
Przeprowadzone testy dla zmodyfikowanego kodu nadal dają wynik pozytywny. Programista może zatem uznać pełen cykl implementacji funkcji ciągu Fibonacciego za ukończony i przejśc do implementacji kolejnych funkcjonalności aplikacji `Kalkulator`.
0 commit comments