Rails - Dúvida teste de integração  XML
Índice dos Fóruns » Ruby & Ruby on Rails
Autor Mensagem
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Pessoal, estou tentando criar um teste que altera um post e então adiciona um comentário a ele. O código é o seguinte:
Acho que até o primeiro assert está ok, mas não sei se a linha seguinte (5) está correta. Se ela estiver, as tentativas de verificar se o comentário foi adicionado estão corretas? Obrigado!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
diguix
JavaChild
[Avatar]

Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline

-editado -
-> na linha 2 substitua o nome da variavel post, para não confundir com o o método post da linha 5(o primeiro da linha)
-> na linha 5 utilize o post.id ao invés de (:post).id.

tente ai e diga se funcionou.

abs'[]

This message was edited 1 time. Last update was at 06/01/2009 13:05:09


O conhecimento está a onde nós olhamos com vontade de aprender!
[Email]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Oi diguix, na verdade, a forma como eu postei já funciona, eu gostaria de saber se foi feito da forma correta. Alterando de acordo com as suas sugestões funcionou da mesma forma.

O que eu gostaria de saber é o seguinte, se a linha 5 está correta, e se os asserts abaixo dela estão fazendo a verificação da forma correta, e, no caso, qual dos dois é o "mais correto", ou mais adequado.

Vlw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
diguix
JavaChild
[Avatar]

Membro desde: 27/08/2006 19:53:29
Mensagens: 142
Localização: RJ/Rio de Janeiro
Offline

Olá von.juliano,

eu acredito que as duas formas estão corretas, porém nunca fiz testes em ruby/rails(erro meu..) talvez conseguisse uma boa resposta no grupo do google rails-br,o pessoal lá é bem ativo.

Abs'[]

O conhecimento está a onde nós olhamos com vontade de aprender!
[Email]
tchandy
JavaChild
[Avatar]

Membro desde: 12/03/2007 21:18:49
Mensagens: 114
Localização: Jaraguá do Sul - SC
Offline

Cara, seguinte, xo tentar te ajudar hehe


post = posts(:one)
assert post.update_attributes(:title => 'Homework')


Essa parte do teste só está testando o método update_attributes, do Active Record, então não tem o porquê de testar...


post '/posts/post_comment', :comment => {:post_id=> (:post).id, :comment => "test comment"}
assert :comment, post.comments.last
assert assigns(:comment).valid?


Acredito que a melhor coisa a se fazer neste teste é testar o "comportamento", ou seja, vc teria que fazer o assert do post se ele foi atualizado, e se um comentário novo foi criado...

Aconselho vc a dar uma lida nos testes prontos criados pelo script/generate Scaffold... eles podem ser um ótimo ponto de partida...

Outro bom material: http://guides.rubyonrails.org/testing_rails_applications.html

Abraço!

Você pode ter todo dinheiro do mundo, mas há algo que jamais poderá comprar... Um Dinossauro!
(Homer J. Simpson)



http://thiagopradi.net | http://github.com/tchandy
[MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Oi tchandy,

tchandy wrote:

post = posts(:one)
assert post.update_attributes(:title => 'Homework')

Essa parte do teste só está testando o método update_attributes, do Active Record, então não tem o porquê de testar...

Aqui eufaçoo update do titulo, e o assert diz se foi feito corretamente, não é isso? Como devo fazer?

tchandy wrote:

post '/posts/post_comment', :comment => {:post_id=> (:post).id, :comment => "test comment"}
assert :comment, post.comments.last
assert assigns(:comment).valid?

Acredito que a melhor coisa a se fazer neste teste é testar o "comportamento", ou seja, vc teria que fazer o assert do post se ele foi atualizado, e se um comentário novo foi criado...

Sim, é o que quero fazer, e achei que a forma como fiz era a correta. Acho que não entendi direito

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
tchandy
JavaChild
[Avatar]

Membro desde: 12/03/2007 21:18:49
Mensagens: 114
Localização: Jaraguá do Sul - SC
Offline

Bom, tou meio enferrujado no test/unit, mais vamos ver se posso ajudar hehe

Teste para a criação do Comment:




Aqui vc está comparando que deve ter uma diferença na contagem de comentários, ou seja, que um novo comentário foi criado, got it?

para o update, pode ser feito algo parecido com isso:


Tou meio enferrujado com o Test/Unit, ultimamente só estou usando o RSpec, então se alguém puder postar um código melhor...

Abraço

This message was edited 1 time. Last update was at 07/01/2009 09:54:09


Você pode ter todo dinheiro do mundo, mas há algo que jamais poderá comprar... Um Dinossauro!
(Homer J. Simpson)



http://thiagopradi.net | http://github.com/tchandy
[MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Lendo o tutorial, consegui chegar à seguinte solução:
Esse teste está correto, o que está com um problema que ainda não resolvi é o seguinte:
Ele reclama que o método find não existe, o qual, pelo que entendi, traria o post alterado para verificação. Se eu usar posts(:one).title, o teste não bate, pois ele compara com o valor original do post.

Como devo fazer para trazer o valor alterado do post para verificação? Vlw!

This message was edited 1 time. Last update was at 13/01/2009 08:22:18


É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
tchandy
JavaChild
[Avatar]

Membro desde: 12/03/2007 21:18:49
Mensagens: 114
Localização: Jaraguá do Sul - SC
Offline

utiliza o assigns(:post).title

abraço

Você pode ter todo dinheiro do mundo, mas há algo que jamais poderá comprar... Um Dinossauro!
(Homer J. Simpson)



http://thiagopradi.net | http://github.com/tchandy
[MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

tchandy, usando o assigns(:post).title obtenho o seguinte erro:
Tá complicado!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
tchandy
JavaChild
[Avatar]

Membro desde: 12/03/2007 21:18:49
Mensagens: 114
Localização: Jaraguá do Sul - SC
Offline

cara, acredito que a sua rota esteja errada, tente rodar o seguinte:



Caso não funcionar, adiciona ae no Gtalk/Msn que te dou um help...

Abraço!

Você pode ter todo dinheiro do mundo, mas há algo que jamais poderá comprar... Um Dinossauro!
(Homer J. Simpson)



http://thiagopradi.net | http://github.com/tchandy
[MSN]
von.juliano
GUJ Master
[Avatar]

Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline

Não funcionou, dá o erro:
Mas o que você está sugerindo é um teste funcional, e não um de integração, correto?

Vou te adicionar no gtalk pra gente conversar, vlw!

É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!

Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/
[Email] [WWW]
 
Índice dos Fóruns » Ruby & Ruby on Rails
Ir para:   
Powered by JForum 2.1.8 © JForum Team