Luminárias

luminárias, estado reutilizável para escrever testes limpos e mais
Baixe Agora

Luminárias Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • The Apache License 2.0
  • Nome do editor:
  • Robert Collins
  • Site do editor:
  • http://bazaar.canonical.com

Luminárias Tag


Luminárias Descrição

Luminárias, estado reutilizável para escrever testes limpos e mais O Luminárias é uma ferramenta que define um contrato Python para lógica de estado / suporte reutilizável, principalmente para testes unitários. A lógica auxiliar e adaptação está incluída para facilitar a gravação de seus próprios acessórios usando o contrato de luminárias. O código de cola é fornecido que faz com que o uso de luminárias que atendam ao contrato de luminárias em casos de teste compatíveis com o Unittest fácil e direto. Por que o FixturesStandard Python Unittest.py não fornece nenhum método óbvio para fazer e reutilizar o estado necessário em um caso de teste além de adicionar um método a classe de teste. Isso escala mal - funções auxiliares complexas que propagam uma hierarquia de classe de teste é um padrão regular quando isso é feito. Zombetando enquanto uma grande ferramenta não impede isso (e ajudantes de zombar das coisas complexas podem se acumular da mesma maneira se colocados na classe de teste). Em definição de um contrato uniforme onde os ajudantes não têm dependência da classe de teste que permitimos que todos os Atividades de higiene de código regular para ocorrer sem a influência distorcida de estar em uma hierarquia de classe que está modelando uma coisa totalmente diferente - que é o que ajudantes em um testcase sofre. Cada fixação tem atributos que são específicos para o acessório. Por exemplo, um diretório que representa um diretório que pode ser usado para arquivos temporários pode ter um atributo 'path'.criating fixturesminimalmente, subclasse fixture, definir a configuração para inicializar seu estado e agendar uma limpeza para quando a limpeza é chamada: >>> Importar Unittest >>> Importação de Importação >>> Classe Noddyfixture (fixtures.fixture): ... Def configuração (auto): ... Super (Noddyfixture, Auto) .Setup () ... self.frobnozzle = 42 ... self.addcleanup (delattr, auto, 'frobnozle') Isso irá inicializar frobnazzar quando a configuração é chamada, e quando a limpeza é chamada de se livrar do atributo Frobnozzle. Há um ajudante para adaptar uma função ou par função em luminosos. . Coloca o resultado da função em fn_result: >>> Import OS.PATH >>> Import Shutil >>> Import Tempfile >>> Def Setup_Function (): ... retorno Tempfile.mkdtemp () >>> DEF Teardown_Function ( fixture): ... shutil.rmtree (fixture) >>> fixture = fixtures.functionfixture (setup_function, desmontagem_function) >>> fixture.setup () >>> impressão os.path.isdir (fixture.fn_result) verdadeiro >> > fixture.cleanup () O exemplo do Apithe de fixação acima introduz algumas das API de fixação. Para poder limpar-se após uma fixação ter sido usada, todas as luminárias definem um método de limpeza que deve ser chamado quando um luminário terminar. Porque é bom poder construir um determinado conjunto de dispositivos elétricos relacionados com antecedência eles, os acessórios também definem um método de configuração que deve ser chamado antes de tentar usá-los. Um desejo comum com luminárias que são caros para criar é reutilizá-los em muitos casos de teste; Para suportar isso, o acessório base também define um reset que chama a auto.Cleanup (); self.setup (). Luminárias que podem se tornar mais eficientemente reutilizáveis devem substituir este método. Isso pode ser usado com vários estados de teste por meio de coisas como testresources, setupclass ou setupmodule.Quando usando um dispositivo elétrico com um teste, você pode ligar manualmente os métodos de configuração e limpeza. Mais conveniente, porém, é usar a cola incluída de luminess.testwithfixtures que fornece uma mixina definindo usfixture (capa de camelo porque a unittest é case de camelo em todo). Ele ligará a instalação no aparelho, ligue para o self.addcleanup (fixture) para agendar uma limpeza e retornar o acessório. Isso permite que uma escreva: >>> Import Testtools >>> Importar Unittestnote que usamos testcase testtools aqui como precisamos garantir um método testcase.addcleanup. >>> Classe Noddytest (testtools.testcase, luminess.testwithfixtures): ... Def test_example (auto): ... fixture = self.usefixture (Noddyfixture ()) ... self.assertequal (42, fixture.frobnozle) >>> resultado = unittest.testresult () >>> _ = noddytest ('test_example'). Executar (resultado) >>> Imprimir result.wassuccessful () Truefixtures implementam o protocolo de contexto, para que você também possa usar um dispositivo elétrico como Gerente de Contexto: >>> com fixtures.functionfixture (setup_function, desmontagem_function) como fixture: ... Imprimir OS.PATH.ISDIR (fixture.fn_result) Requisitos verdadeiros: · Pitão


Luminárias Software Relacionado