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: 12

Rating: nan/5 (Total Votes: 0)

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

pagerunit
pagerunit

11 May 15

nose-progressive
nose-progressive

14 Apr 15

NoseDBResult
NoseDBResult

11 May 15

cynic
cynic

14 Apr 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!