Python Koans é uma versão do "Ruby Koans" do Edgecase que pode ser encontrado em http://rubykoans.com/.
Python Koans é um tutorial interativo para aprender a linguagem de programação Python fazendo testes passarem.
A maioria dos testes é corrigida preenchendo as partes que faltam nas funções assert. Por exemplo:
self . assertEqual ( __ , 1 + 2 )
que pode ser corrigido substituindo a parte __ pelo código apropriado:
self . assertEqual ( 3 , 1 + 2 )
Ocasionalmente, você encontrará alguns testes reprovados que já foram preenchidos. Nestes casos você precisará terminar de implementar algum código para progredir. Por exemplo, existe um exercício para escrever algum código que lhe dirá se um triângulo é equilátero, isósceles ou escaleno.
Além de ser uma ótima maneira de aprender um pouco de Python, também é uma boa maneira de experimentar o Desenvolvimento Orientado a Testes (TDD).
Python Koans está disponível no GitHub:
Você pode clonar com Git ou baixar o código-fonte como zip/gz/bz2.
Além de baixar ou verificar a versão mais recente do Python Koans, você precisa instalar o interpretador Python.
No momento em que este artigo foi escrito, oferecemos suporte ao Python 3. A política é tentar nos manter atualizados com a versão de produção mais recente.
Você deve ser capaz de trabalhar com versões mais recentes do Python, mas as mais antigas provavelmente causarão problemas.
Você pode baixar Python aqui:
Depois de instalar o Python, certifique-se de que a pasta que contém o executável do python esteja no caminho do sistema. Em outras palavras, você precisa ser capaz de executar o Python a partir de um console de comando. Será python3
ou para Windows será python.exe
.
Se você tiver problemas, isso pode ajudar:
Os usuários do Windows também podem querer atualizar a linha no arquivo em lote run.bat
para definir o caminho do python:
DEFINIR PYTHON_PATH=C:Python39
Jake Hebbert criou alguns screencasts disponíveis aqui:
https://www.youtube.com/watch?v=e2WXgXEjbHY&list=PL5Up_u-XkWgNcunP_UrTJG_3EXgbK2BQJ&index=1
Ou se preferir ler:
Em um terminal *nix ou prompt de comando do Windows, execute:
.. bloco de código :: sh
python contemplate_koans.py
ou:
python3 contemplate_koans.py
No meu caso, estou usando Python 3 com Windows, então aciono meu shell de comando (cmd.exe) e executo isto:
Aparentemente, um teste falhou:
AssertionError: Falso não é Verdadeiro
Também me diz exatamente onde está o problema, é uma afirmação na linha 12 de .\koans\about_asserts.py
. Este é fácil, basta alterar False
para True
para fazer o teste passar.
Mais cedo ou mais tarde, você provavelmente encontrará testes nos quais não tem certeza de qual deveria ser o valor esperado. Por exemplo:
class Dog :
pass
def test_objects_are_objects ( self ):
fido = self . Dog ()
self . assertEqual ( __ , isinstance ( fido , object ))
É aqui que a linha de comando do Python pode ser útil. Nesse caso posso acionar a linha de comando, recriar o cenário e executar consultas:
O Sniffer permite que você execute os testes continuamente. Se você modificar qualquer arquivo no diretório koans, os testes serão executados novamente.
Para configurar isso, você precisa instalar o sniffer:
python3 -m pip install sniffer
Você também deve executar uma dessas bibliotecas dependendo do seu sistema. Isso acionará automaticamente o sniffer quando um arquivo for alterado; caso contrário, o sniffer terá que pesquisar para ver se os arquivos foram alterados.
No Linux:
python3 -m pip install pyinotify
No Windows:
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
No macOS:
python3 -m pip install MacFSEvents
Depois de configurado, basta executar:
sniffer
Basta modificar um dos arquivos koans e você verá que os testes são acionados automaticamente. O Sniffer é controlado por scent.py
.
Citando as instruções de Ruby Koans:
"No desenvolvimento orientado a testes, o mantra sempre foi vermelho, verde, refatorar. Escreva um teste com falha e execute-o (vermelho), faça o teste passar (verde) e refatore-o (isto é, olhe o código e veja se você pode torná-lo ainda melhor). Nesse caso, você precisará executar o koan e vê-lo falhar (vermelho), fazer o teste passar (verde) e, em seguida, parar um momento e refletir sobre o teste para ver o que ele está lhe ensinando. e melhorar o código para comunicar melhor sua intenção (refatorar)."
Existem vários outros grandes projetos Koan disponíveis para várias linguagens e estruturas. A maioria deles pode ser encontrada no GitHub. Também há uma pequena atividade de koans no Bitbucket.
Traduções são sempre bem-vindas! Sinta-se à vontade para adicionar um a este README se você trabalhar em um:
https://github.com/mswell/python_koans_br
Obrigado a Jim Weirich e Joe O'Brien pelos Ruby Koans originais nos quais o Python Koans é baseado! Além disso, os Ruby Koans, por sua vez, pegam emprestado dos Metakoans, então obrigado também a Ara Howard por isso!
Obrigado também a todos que contribuíram para Python Koans! Tive um grande avanço ao assumir uma base de código iniciada pelos Mikes combinados da FPIP. Então aqui está um pequeno plug-in para seu podcast muito legal sobre Python:
Um grande obrigado também a Mike Pirnat @pirnat e Kevin Chase @kjc por terem atuado como co-mantenedores em vários momentos