Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Mockando Dependências Internas | Testes com Unittest e Pytest
Programação Estrutural em Python
Seção 5. Capítulo 5
single

single

Desafio: Mockando Dependências Internas

Deslize para mostrar o menu

Você está prestes a enfrentar um desafio mágico: como aprendiz de mago, é necessário garantir que o script de lançamento de feitiços da sua Varinha Mágica funcione corretamente, mesmo quando as forças imprevisíveis da mana estão em ação. A varinha depende de uma função chamada get_mana_level() para detectar a energia mágica ambiente. Se a mana estiver suficientemente alta, seu feitiço de fogo será lançado; caso contrário, ele se dissipará em uma nuvem decepcionante. Para testar seu feitiço de forma confiável, é preciso simular o nível de mana, representando tanto alta quanto baixa energia mágica.

Tarefa

Deslize para começar a programar

Sua missão é criar um sistema robusto de lançamento de feitiços e testá-lo utilizando mocks.

  • Criar uma função get_mana_level() que retorna um número inteiro aleatório de 0 a 100.
  • Criar uma função cast_spell() que:
    • Chama get_mana_level().
    • Se o nível de mana for 50 ou mais, retorna "Fireball cast successfully!".
    • Caso contrário, retorna "The spell fizzled...".
  • Escrever dois testes utilizando unittest:
    • Usar patch para fazer com que get_mana_level() retorne 80 e verificar se cast_spell() retorna a mensagem de sucesso.
    • Usar patch para fazer com que get_mana_level() retorne 20 e verificar se cast_spell() retorna a mensagem de falha.

Dicas:

  • Utilize random.randint na sua função get_mana_level().
  • Para aplicar o patch corretamente, aponte para 'get_mana_level' em seus testes.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 5
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt