Validar (X)HTML em Rails
Quase todos os programadores que utilizam técnicas recentes, e entre estas, os testes unitários desejaram automatizar a possibilidade de validar os seus projectos. O que resulta em (X)HTML de um projecto em Rails pode facilmente ser validado pois em Julho de 2005 o Validator do W3C o tornou mais fácil ao permitir que fragmentos fossem lançados POSTed no seu serviço. Agora com uma simples asserção à medida, os testes funcionais podem assegurar-se que a sua marcação é e se mantém válida.
Basta adicionar isto ao seu test/test_helper.rb:
def assert_valid_markup(markup=@response.body)
require 'net/http'
response = Net::HTTP.start('validator.w3.org') do |w3c|
query = 'fragment=' + CGI.escape(markup) + '&output=xml'
w3c.post2('/check', query)
end
assert_equal 'Valid', response['x-w3c-validator-status']
end
E depois (dada uma acção designada por 'home') chamar a asserção a partir dos seus testes funcionais como em:
def test_home
get :home
assert_valid_markup
end
E pronto, a sua marcação passa a ser validada de cada vez que executar os testes, e se alguma coisa invalidar o resultado, vai sabê-lo de imediato.
assert_valid_markup()
irá validar o conteúdo de @response.body
(que recebe o seu valor pela linha get
); Pode ainda passar um argumento para verificar algo mais. Se desejar mais detalhes sobre erros de validação pode alterar a asserção de modo a ver response.body
que é um ficheiro XML com informação sobre cada erro.
Sem comentários:
Enviar um comentário