Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✅ Finalizado projeto com unittest #37

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

louicosta
Copy link

No description provided.

Copy link
Collaborator

@mayaracsferreira mayaracsferreira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Louie, parabéns pela entrega!!
Vc explorou outras formas de fazer as coisas acontecerem! Deixei apenas alguns comentários, se tiver alguma duvida só perguntar, mas no geral mandou muito bem! Arrasou

def exibir_livro(self):
return self.livros

def emprestar_livro(self, livro: Livro):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esse método tem alguns ajustes a serem feitos na lógica:

  • aqui estamos verificando contra o objeto livro que recebemos do parametro, mas será que não seria mais interessante comparar com o livro que temos armazenados dentro da nossa Biblioteca? (dica dentro da lista de livros por exemplo)
  • como o livro sempre começa com emprestado = False, ele vai direto para a exceção
  • o If e o elif estão fazendo a mesma comparação, if livro.emprestado == True e elif livro.emprestado são formas diferentes de fazer a mesma verificação, por isso o seu elif nunca vai ser alcançado

Um site que ajuda muito a entender a lógica é o https://pythontutor.com/
Nesse site vc consegue fazer teste de mesa e ir debugando o código

nome_livro = "O Guia do Mochileiro das Galáxias"
nome_autor = "Douglas Adams"
livro = Livro(nome_livro, nome_autor)
livro.esta_emprestado = True
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aah agora entendi que está alterando o valor de emprestado aqui no teste.

Interessante, pode ser uma forma diferente de fazer, mas como a gente pode fazer a ligação o objeto livro criado aqui fora da biblioteca com o que está dentro da lista biblioteca.livros ?

class TestLivro(TestCase):
def test_init_deve_passar(self):
#arrange
nome = "Coraline"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<3

self.biblioteca.adicionar_livro(livro)

def test_exibir_livro(self):
self.biblioteca.livros = "Jogador nº 1"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muito interessante isso que vc fez!

Isso expõe uma vulnerabilidade do nosso sistema de gerenciamento de bibliotecas, até o momento todo mundo usou o biblioteca.adicionar_livro(), sem questionar se seria possivel fazer de outra forma

ao fazer isso vc inclusive alterou o tipo da propriedade de lista para string! Uma QA nata! achando brechas!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants