Carlos Brando

Nome do Jogo

Rails 2.2: Alterada a mensagem do método assert_difference

Quando usávamos o método assert_difference com múltiplas expressões e um erro ocorria era difícil de saber qual das expressões não teve seu valor alterado, já que a mensagem de erro não informava isto.

No Rails 2.2 a mensagem devolvida pelo método informará exatamente qual expressão não passou no teste. Por exemplo:

assert_difference ['Post.count', 'current_user.posts.count'] do
  Post.create(params)
end

O código acima retornará a seguinte mensagem, caso a segunda expressão não tenha passado:

<current_user.posts.count> was expression that failed. <1> expected but was <0>.

Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.2 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades do Rails 2.2 no e-book “Ruby on Rails - O que há de novo?“.

Comments