Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/paulohrpinheiro/test-driven-learning

Learn programming by passing code tests
https://github.com/paulohrpinheiro/test-driven-learning

c javascript perl python ruby rust tdd

Last synced: about 1 month ago
JSON representation

Learn programming by passing code tests

Awesome Lists containing this project

README

        

# Test Driven Learning

Melhore sua capacidade de programação, trabalhando com código e especificações
de terceiros, e, especialmente, satisfazendo a testes unitários.

# Público alvo

Todo aquele que está começando em uma linguagem e quer resolver alguns
exercícios, mas fazendo testes de unidade. Com uma diferença: os testes já
estão feitos. Leia os requisitos, implemente e verifique.

## Instalação

Clone este repositório em sua máquina:

git clone https://github.com/paulohrpinheiro/test-driven-learning

Melhor ainda de você der um *fork* desse projeto, se tiver uma conta
no *GitHub*. Aqui tem-se as instruções:

https://help.github.com/articles/fork-a-repo/

## Uso

Primeiro, escolha um dos níveis (atualmente só o
diretório [*000_novice*](000_novice)). Então crie uma *branch* para você. Isso
faz parte do exercício:

git checkout -b minhasolucao # *minhasolucao* é uma sugestão de nome

Trabalhe nos arquivos `problems.*`, execute os testes conforme explicado logo
mais abaixo.

Existe uma *branch* com sugestão de soluções: é a [branch solved](). Para
passar a essa *branch*, execute o comando:

git checkout solved

Para voltar à *branch minhasolucao*, onde devem estar seus códigos, digite o
comando:

git checkout minhasolucao

Em *solved* está a minha solução para os problemas, que serve como meus testes
para testar os testes. Pode servir de referência, se quiser comparar seu
código ou não ter entendido alguma coisa.

Agora você pode começar a trabalhar no diretório da linguagem que você prefere:

1. [Python](000_novice/python)
1. [Perl](000_novice/perl)
1. [C](000_novice/c)
1. [Rust](000_novice/rust)
1. [Ruby](000_novice/ruby)
1. [JavaScript](000_novice/javascript)
1. [GO](000_novice/go)

Para testar, cada linguagem tem seu comando. Dentro da pasta e *branch* que
você trabalhou, execute o comando específico:

Linguagem | comando
-------------|--------
*Python*\* | `python problems.py`
*Perl* | `perl tests.t`
*C* | `make test`
*Rust* | `cargo test`
*Ruby* | `ruby tests.rb -v`
*JavaScript* | `d8 problems.js`
GO | `go test -v`

\* Funciona tanto no *Python2* como *Python3*

Se algum teste falhar, continue trabalhando e testando.

# Quer ajudar no projeto?

1. Clone ele!
1. Crie uma *branch* para sua contribuição: `git checkout -b minha-contribuissaum`
1. "Comite" suas alterações: `git commit -am 'Add some feature'`
1. Faça o *pull request* :stuck_out_tongue:

## Licença

Licenciado sob a *MIT License*, veja o arquivo [LICENSE](LICENSE).