dingus

Tela Software:
dingus
Detalhes de Software:
Versão: 0.3.4
Data de upload: 14 Apr 15
Revelador: Gary Bernhardt
Licença: Livre
Popularidade: 76

Rating: 4.0/5 (Total Votes: 2)

dingus é como uma espécie de objeto de simulação. A principal diferença é que você não configurar as expectativas antes do tempo. Você acabou de executar o código, usando um dingus no lugar de outro objeto ou classe, e ele irá gravar o que acontece com ele. Em seguida, uma vez que seu código foi exercido, você pode fazer afirmações sobre o que ele fez com os dingus.
Um novo dingus é criado a partir da classe Dingus. Você pode dar nomes dinguses, que ajuda com a depuração de seus testes, especialmente quando há vários dinguses em jogo.
& Nbsp; >>> from dingus importar Dingus
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> d
& Nbsp;
Acessando qualquer atributo de um dingus irá retornar uma nova dingus.
& Nbsp; >>> d.something
& Nbsp;
Há algumas exceções para métodos dingus especiais. Vamos ver alguns um pouco.
Um dingus também pode ser chamado como uma função ou método. Ele não se importa quantos argumentos você dá a ele ou o que esses argumentos são. As chamadas para uma dingus sempre retornará o mesmo objeto, independentemente dos argumentos.
& Nbsp; >>> d ()
& Nbsp;
& Nbsp; >>> d ("argumento")
& Nbsp;
& Nbsp; >>> d (55)
& Nbsp;
GRAVAÇÃO e afirmações
A qualquer momento, podemos obter uma lista de chamadas que foram feitas para um dingus. Cada entrada na lista de chamadas contém:
& Nbsp; * o nome do método chamado (ou "()" se o próprio dingus foi chamado)
& Nbsp; * Os argumentos, ou () se nenhum
& Nbsp; * Os argumnets de palavras-chave, ou {} se nenhum
& Nbsp; * O valor que foi retornada para o chamador
Aqui está uma lista das chamadas que fizemos para d até o momento:
& Nbsp; >>> from pprint importação pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [('()', (), {}, ),
& Nbsp; ('()', ('argumento',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Você pode filtrar as chamadas por nome, argumentos e argumentos:
& Nbsp; >>> pprint (d.calls ('()', 55))
& Nbsp; [('()', (55,), {}, )]
Se você não se importa com o valor de um determinado argumento, você pode usar o valor DontCare ao filtrar:
& Nbsp; >>> from dingus importar DontCare
& Nbsp; >>> pprint (d.calls ('()', DontCare))
& Nbsp; [('()', ('argumento',), {}, ),
& Nbsp; ('()', (55,), {}, )]
Dinguses pode fazer mais do que apenas ter atributos acessados ​​e ser chamado. Eles suportam muitos operadores Python. O objetivo é permitir que, e registrar, qualquer interação:
& Nbsp; >>> d = Dingus ('root')
& Nbsp; >>> (2 ** d.something) ['Olá'] () / 100 * 'foo'
& Nbsp;
(Espero que suas gravações dingus do mundo real não será parecido com este!)
PATCHING
Dingus fornece um gerente de contexto para remendar objetos durante os testes. Por exemplo:
& Nbsp; >>> from dingus patch de importação
& Nbsp; >>> urllib2 importação
& Nbsp; >>> com o patch ('urllib2.urlopen'):
& Nbsp; ... print urllib2.urlopen .__ class__
& Nbsp;
& Nbsp; >>> print urllib2.urlopen .__ class__
& Nbsp; <'função' type>
Você também pode usar isso como um decorador em seus métodos de ensaio:
& Nbsp; >>>patch ('urllib2.urlopen')
& Nbsp; ... def test_something (self):
& Nbsp; ... passe
& Nbsp; ...
MAGIC PERIGOSA
Dingus também pode substituir automaticamente globals de um módulo ao executar testes. Isso permite que você escrever testes de unidade totalmente isolados. Veja exemplos / urllib2 / test_urllib2.py para um exemplo. O autor não recomenda esse recurso, pois pode incentivar testes muito frágeis. Você deve sentir a dor de dependências zombando manualmente; . a dor irá dizer-lhe quando uma classe colabora com muitos outros

Requisitos :

  • Python

Programas semelhantes

nose2-cov
nose2-cov

14 Apr 15

gunit-hildon
gunit-hildon

3 Jun 15

nose-sfd
nose-sfd

14 Apr 15

nose-testconfig
nose-testconfig

11 May 15

Outro software de desenvolvedor Gary Bernhardt

expecter
expecter

20 Feb 15

Comentário para dingus

Comentários não encontrado
Adicionar comentário
Ligue imagens!