Aula 05 – Mini curso de Git

More videos
Views
   

GIT – CONTROLE DE VERSÃO DISTRIBUÍDO

MINI CURSO DE GIT

Link do Meu Github

GIT

GIT

VAMOS CRIAR UMA NOVA BRANCH setup_program_and_tests

git checkout -b setup_program_and_tests

CRIAREMOS O PRIMEIRO TESTE DO NOSSO PROGRAMA, NO ARQUIVO test_noel.py.

INSIRA NELE O SEGUINTE CONTEÚDO:


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
import unittest
from noel import solution

class TestNoel(unittest.TestCase):
    def test_one_Ho(self):
        self.assertEqual(solution(1), "Ho!")

unittest.main()

AGORA O ARQUIVO noel.py.


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
def solution():
    pass

VAMOS RODAR O TESTE

  • DENTRO DA PASTA hohoho DIGITE python test_noel.py
  • VEJA A MENSAGEM DE ERRO DIZENDO QUE None != ‘Ho!’ None É DIFERENTE DA STRING ‘Ho!’
  • AGORA IREMOS CORRIGIR O ERRO REFERENTE AO PRIMEIRO TESTE

# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
def solution(num):
    return 'Ho!'

RODE O TESTE NOVAMENTE python test_noel.py E VEJA QUE AGORA O PRIMEIRO TESTE VAI PASSAR

HORA DE ADICIONAR A MODIFICAÇÃO A STAGING AREA, COMMITAR E FAZER O PUSH PARA O GITHUB

git add .

git commit "insert return Ho! in noel.py"

git push origin initial_set_files

VAMOS CONSTRUIR UM NOVO TESTE, AGORA COM DOIS HO ( ‘Ho Ho!’)


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
import unittest
from noel import solution

class TestNoel(unittest.TestCase):
    def test_one_Ho(self):
        self.assertEqual(solution(1), "Ho!")

    def test_two_Ho(self):
        self.assertEqual(solution(2), "Ho Ho!")

unittest.main()

RODE NOVAMENTE O ARQUIVO DE TESTE test_noel.py E VEJA QUE UM TESTE VAI PASSAR, MAS O NOVO TESTE NÃO.

PODEMOS AGORA ADICIONAR A MUDANÇA NO ARQUIVO DE TESTE A STAGING AREA, DEPOIS COMIITAR E SE QUISER, PODE FAZER LOGO O PUSH PRO GITHUB.

git add .

git commit -m "create a second test with 2 as parameter and expected Ho Ho! as return"

git add push origin initial_set_files

AGORA VAMOS CORRIGIR NOSSO PROGRAMA noel.py PARA QUE ELE CONSIGA RESOLVER NOSSO SEGUNDO CASO DE TESTE SEM QUEBRAR O PRIMEIRO TESTE.


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
def solution(num):
    if num == 1:
        return 'Ho!'
    return 'Ho Ho!'

VAMOS ADICIONAR AS MUDANÇAS NO ARQUIVO noel.py A STAGING AREA, DEPOIS COMMITAR E FAZER O PUSH PARA O GITHUB.

git add .

git commit -m "change the noel code to fix the second test case"

git add push origin initial_set_files

TEMOS DOIS TESTE, E O NOSSO PROGRAMA TÁ FUNCIONANDO PARA ESSES DOIS TESTES, VAMOS CRIAR UM OUTRO TESTE QUE QUEBRE NOSSO PROGRAMA.


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
import unittest
from noel import solution

class TestNoel(unittest.TestCase):
    def test_one_Ho(self):
        self.assertEqual(solution(1), "Ho!")

    def test_two_Ho(self):
        self.assertEqual(solution(2), "Ho Ho!")
    
    def test_five_Ho(self):
        self.assertEqual(solution(5), "Ho Ho Ho Ho Ho!")

unittest.main()

NOSSO TERCEIRO TESTE NÃO IRÁ PASSAR

VAMOS AGORA TENTAR UMA SOLUÇÃO QUE RESOLVA O CASO MAIS GERAL POSSÍVEL, QUE PASSANDO QUALQUER NÚMERO ENTRE ZERO e 1.000.000 (10⁶ ou 10^6) ELE TRAGA A RESPOSTA CORRETA.

VAMOS PRIMEIRO ADICIONAR AS MUDANÇAS NO test_noel.py A STAGING AREA, COMMITAR E FAZER O PUSH.

git add .

git commit -m "create a third test with 5 as parameter and expected Ho Ho Ho Ho Ho! as return"

git add push origin initial_set_files

AGORA VAMOS RETIRAR TODO O HARDCODE QUE FIZEMOS NO NOSSO PROGRAMA E COLOCAR A SOLUÇÃO DEFINITIVA PARA TODOS OS CASOS POSSÍVEIS DE TESTE.


# -*- coding: utf-8 -*-
"""
@author: toti.cavalcanti
"""
def solution(num):
    return "Ho " * (num - 1) + "Ho!" 

AGORA PARA FINALIZAR, JÁ QUE NOSSO PROGRAMA ESTÁ PRONTO, VAMOS ADICIONAR AS MUDANÇAS A STAGING AREA, COMMITAR, FAZER O PUSH PARA O GITHUB, SAIR DA BRANCH initial_set_files E VOLTAR PARA A master, FAZER O MERGE COM A BRANCH initial_set_files E FAZER O PUSH PARA A MASTER.

git add .
git commit -m "change the noel.py file to resolve any possible test"
git add push origin initial_set_files
git checkout master
git merge initial_set_files
git push origin master

CONCLUSÃO:

COM ESSES COMANDOS E ENTENDIMENTO BÁSICOS DO GIT, VOCÊ JÁ CONSEGUE FAZER O CONTROLE DE VERSÃO DE SEUS PROJETOS.

CLARO QUE EXISTE MUITO MAIS COISAS A APRENDER, MAS O INTUITO DESSE PEQUENO TUTORIAL SOBRE O GIT, É MAIS PARA DÁ UMA BASE PRA QUEM QUER COMEÇAR A USAR ESSES RECURSOS NA PRÁTICA.

Com isso encerramos mais essa aula. 🙂

Curta a página do Código Fluente no Facebook.
https://www.facebook.com/Codigofluente-338485370069035/

Vou deixar meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro link é da one.com:

One.com

Obrigado, até a próxima e bons estudos. 😉

Increva-se

Inscreva-se agora e receba um e-mail assim que eu publicar novo conteúdo.

Concordo em me inscrever no blog Código Fluente

Você poderá cancelar sua inscrição a qualquer momento.

(Visited 12 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>