スキル pytest-mock-guide
🧪

pytest-mock-guide

安全 📁 ファイルシステムへのアクセス

Usar pytest-mock para Testes

Escrever testes de unidade requer isolar o código de dependências. Esta habilidade fornece padrões para mocking, patching, spying e stubbing em pytest usando o plugin pytest-mock e a API unittest.mock.

対応: Claude Codex Code(CC)
📊 71 十分
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「pytest-mock-guide」を使用しています。 How do I mock os.listdir to return a specific directory listing?

期待される結果:

  • Use mocker.patch with the full dotted path to os.listdir:
  • mock_listdir = mocker.patch('os.listdir')
  • mock_listdir.return_value = ['file1.txt', 'file2.txt']
  • Then os.listdir() returns ['file1.txt', 'file2.txt'] when called in your test.
  • To verify calls: mock_listdir.assert_called_once_with('/some/path')

「pytest-mock-guide」を使用しています。 How do I test that my function raises an error for bad input?

期待される結果:

  • Configure side_effect on your mock to raise exceptions:
  • mock_func = mocker.patch('module.process')
  • mock_func.side_effect = ValueError('invalid input')
  • with pytest.raises(ValueError):
  • module.process('bad data')
  • The mock will raise ValueError when called, testing your error handling.

セキュリティ監査

安全
v4 • 1/16/2026

All 152 static findings are FALSE POSITIVES. The skill contains only documentation for pytest-mock testing library with Python code examples. Pattern detections are triggered by: (1) Markdown backtick formatting being misidentified as Ruby shell execution, (2) Documentation examples of mocking OS functions like os.listdir for testing, and (3) Common method names like attach_mock being misidentified as C2 keywords. No executable code, network requests, or malicious patterns exist.

3
スキャンされたファイル
1,530
解析された行数
1
検出結果
4
総監査数

リスク要因

📁 ファイルシステムへのアクセス (1)
監査者: claude 監査履歴を表示 →

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
31
コミュニティ
100
セキュリティ
91
仕様準拠

作れるもの

Isolamento de Testes

Substituir chamadas de banco de dados, clientes de API e operações de arquivo com mocks para tornar os testes rápidos e confiáveis.

Teste de Exceções

Simular erros e casos extremos configurando side effects em funções mockadas sem causar falhas reais.

Verificação de Comportamento

Espionar funções para verificar padrões corretos de interação entre componentes durante a execução de testes.

これらのプロンプトを試す

Configuração Básica de Mock
Mostre-me como usar mocker.patch para substituir module.function por um mock que retorna um valor específico.
Espionar Métodos
Como usar mocker.spy para envolver um método real enquanto rastreia todos os argumentos passados a ele?
Mocking Assíncrono
Quais padrões o pytest-mock fornece para mockar funções async e verificar chamadas await?
Fixtures com Escopo
Como usar class_mocker, module_mocker, package_mocker e session_mocker para compartilhar estado de mock?

ベストプラクティス

  • Fazer patch onde a função é usada, não onde é definida, para corresponder à forma como outros códigos a importam
  • Usar autospec=True ou create_autospec para capturar incompatibilidades de assinatura cedo nos testes
  • Reiniciar histórico de chamadas com resetall() entre assertions quando precisar verificar padrões específicos de chamadas

回避

  • Evitar mockar tudo - focar em dependências externas, não no seu próprio código bem projetado
  • Não esquecer que fazer patching de builtins requer fazer patch de 'builtins.open' no módulo que o usa
  • Evitar usar assert_called() sem argumentos após múltiplas chamadas - ele verifica apenas a última chamada

よくある質問

Qual é a diferença entre patch e spy?
patch substitui uma função completamente por um spy mantém a função real mas rastreia todas as chamadas e valores de retorno para verificação.
Como o pytest-mock difere do unittest.mock?
pytest-mock fornece o fixture mocker que limpa mocks automaticamente após cada teste e se integra com fixtures do pytest.
Posso mockar funções async com pytest-mock?
Sim, use AsyncMock para funções async ou mocker.async_stub para stubs async. AsyncMock suporta todos os métodos assert_await.
Como verificar se um mock nunca foi chamado?
Use mock.assert_not_called() para verificar se o mock não foi invocado em nenhum ponto do teste.
O que é autospec e quando devo usá-lo?
autospec cria um mock que corresponde à assinatura da função alvo, capturando erros quando testes chamam mocks com argumentos errados.
Como mockar propriedades ou métodos de classe?
Use mocker.patch.object para métodos de instância, PropertyMock para propriedades e patch.object na classe para métodos de classe.

開発者の詳細

作成者

bossjones

ライセンス

MIT

参照

main

ファイル構成