diff --git a/_images/tdd-fast-test-slow-test-2.png b/_images/tdd-fast-test-slow-test-2.png new file mode 100644 index 0000000..dce86a1 Binary files /dev/null and b/_images/tdd-fast-test-slow-test-2.png differ diff --git a/_images/tdd-fast-test-slow-test.png b/_images/tdd-fast-test-slow-test.png new file mode 100644 index 0000000..38493ff Binary files /dev/null and b/_images/tdd-fast-test-slow-test.png differ diff --git a/filosofando-testes.html b/filosofando-testes.html index 3b5d446..85f5495 100644 --- a/filosofando-testes.html +++ b/filosofando-testes.html @@ -55,7 +55,7 @@
Reddit: Devo escrever testes para a validação interna do Django?
... bom, talvez sim.
Gary Bernhardt: Fast Test, Slow Test
+... soa familiar?
+... continua soando familiar?
+Qual o valor desse teste para o meu projeto?
+Se eu estou escrevendo testes do meu modelo sem + que seja integrado com o meu controller, eu estou + testando o que?
+ +Aderência a arquitetura do projeto.
+Se o teste que verifica a funcionalidade para + o usuário (integração) produz mais valor + que o teste que garante a aderência do projeto à + uma arquitetura, qual teste deve ser rodado + primariamente?
+"Testes de integração são lentos, então eu tenho que rodar-los + menos ou ter menos desses testes."
+Se os testes indicam quais funcionalidades devem estar + presentes...
+ +... coverage vai indicar quais partes + de código não tem nada a ver com as funcionalidades que + vão ser entregues.
+
class Client:
@@ -168,27 +277,16 @@ class Client:
Novo requisito: "somente aceitar nomes válidos, que tem 2 palavras ou mais."
SOLID principles:
-
def _multiple_names(name):
@@ -207,7 +305,8 @@ class Client:
import pytest
@@ -221,7 +320,8 @@ def test_multiple_name():
def test_valid_name():
@@ -234,7 +334,8 @@ def test_invalid_name():
def test_client_error():
@@ -247,7 +348,8 @@ def test_client():
$ pytest client.py
@@ -262,7 +364,8 @@ client.py ......
$ pytest --cov=client client.py
@@ -282,13 +385,15 @@ client.py 25 0 100%
"Não podemos perder a Cher, a Xuxa, a Madonna, a Björk e o String como clientes!"
class Client:
@@ -298,7 +403,8 @@ class Client:
==== FAILURES ====
@@ -315,7 +421,8 @@ client.py:37: Failed
$ pytest client.py
@@ -331,7 +438,8 @@ client.py ......
$ pytest --cov=client client.py
@@ -352,29 +460,35 @@ client.py 24 0 100%
Encontre o erro.
100% de cobertura de testes é possível.
+ +... desde que esteja disposto a escrever + código que testa funcionalidades do usuário e não conformidade + de arquitetura e código não coberto seja apagado.
+