Não foi possível carregar o Diqus. Se você é o moderador, por favor veja o nosso guia de problemas.

Celestino Gomes • 12 anos atrás

...alinhadas as de metodologia Ágil (continuação da piada "interna")

Luciano Sousa • 12 anos atrás

Muito bom. O Corey Haines tem uma apresentação com umas idéias bem parecidas. http://www.youtube.com/watc... Vale a pena dar um confere também.

Rodrigo Rosenfeld Rosas • 12 anos atrás

Eu uso uma abordagem similar (embora eu use o Sequel em vez de AR) mas não entendo por quê você usa "require ./app/models/xxx" em vez de "require xxx" ou require_relative, como eu costumo fazer nos meus fontes e testes...

Nando Vieira • 12 anos atrás

Nem o diretório atual, nem os diretórios dentro de "apps" ("app/models", por exemplo) estão no $LOAD_PATH. Por isso, não é possível fazer apenas require "app/models/model" ou require "model". O require_relative não iria ajudar muito aqui.

Rodrigo Rosenfeld Rosas • 12 anos atrás

Ah, eu não tinha percebido que você tava usando "app" em vez de "apps"! Normalmente eu coloco minhas classes auxiliares em "lib", então nesse caso eu usaria algo como "require 'models/model'".

Alessandro Tegner • 12 anos atrás

Segui a idéia do spec_helper_active_record e percebi que ao instanciar um modelo, está sendo ignorado o que eu defini no attr_accessible (não está bloqueando os atributos não definidos). Tentei colocar no final do spec_helper_active_record "ActiveRecord::Base.class_eval { mass_assignment_saniziter = :strict }" e não tive muito sucesso.
Teve este problema também?

Nando Vieira • 12 anos atrás

O Rails faz isso no arquivo config/application.rb, que não é mais carregado pelo arquivo spec/spec_helper_active_record.rb. Você quase acertou. Faltou fazer a atribuição no objeto. Experimente colocar isso.

ActiveRecord::Base.attr_accessible nil
ActiveRecord::Base.mass_assignment_sanitizer = :strict
Débora Martins • 10 anos atrás

Opa Nando, seria muito pedir pra atualizar o

spec_helper_active_record para nova versão do Rspec? Estou com dificuldades para configurar.

Nando Vieira • 10 anos atrás

Criei um gist com os arquivos atualizados. https://gist.github.com/fna...

Vou tentar atualizar este artigo depois. ;)

Nando Vieira • 10 anos atrás

Artigo atualizado com as mesmas instruções. :)

Débora Martins • 10 anos atrás

Obrigada.

Nonato • 9 anos atrás

Nando, o que vc acha da visão de alguns rubistas como DHH, Martin Fowler, Uncle Bob, etc., de que só deveríamos usar mocks (stub na verdade) quando precisarmos chamar métodos muito demorados, ou chamadas em API externas? Segundo eles, deveríamos considerar métodos/classes que estão dentro do mesmo domínio como uma unidade, e, nesses casos, não utilizar mocks. Ex: Se tenho as classes Product e Category, e for testar a classe Category pra saber se ela retorna a quantidade certa de produtos q ela possui, eu não precisaria criar stubs de Product. Estou começando agora no mundo dos testes e já estou encucado com essas 2 filosofias. O que você acha? grande abraço!!

Nando Vieira • 9 anos atrás

É difícil dar uma resposta única, porque depende muito do contexto. Eu mesmo não uso mais tanto mock/stub como fazia antigamente. Hoje prefiro criar adapters e ter coisas específicas para o modo de desenvolvimento e teste.

Assim como todas as outras técnicas, existem prós e contras, sem falar que não dá para aplicar esse conceito em todos os tipos de testes. Por isso é importante experimentar tudo para decidir o que funciona melhor em cada caso.

Nonato • 9 anos atrás

Legal. Obrigado pela resposta. Se possível faz um artigo sobre isso, acho que muitos iriam gostar, assim como eu. Se tiver algum material sobre esse pensamento, ficaria muito se você compartilhar. Grande abraço.