2015-04-12 52 views
1

美好的一天!测试Django页面内容中的链接

所以要我的问题,

我有一些链接一个模板,我想,认为自己确实有在我的网页。

我的HTML部分,

<section> 
    <p>Welcome to open radio. We help you get on air!</p> 
    <p><a href="{% url 'userlogin' %}">Login</a></p> 
    <p><a href="{% url 'liststations' %}">View all our stations</a></p> 
    <p><a href="{% url 'userregistration' %}">SignUp!</a></p>  
</section> 

我现在测试,

response = self.client.get(reverse("home")) 
assert reverse("userlogin") in response.content 
assert reverse("liststations") in response.content 
assert reverse("userregistration") in response.content 

我测试通过,我知道我不是真的断言为这里的连结,而是针对URL的字符串。我该如何测试链接?

回答

2

Django自己的测试套件使用这个断言某个URL在响应:

response = self.client.get(reverse("home")) 
self.assertContains(response, '<a href="%s">Login</a>' % reverse("userlogin"), html=True) 
... 

self.assertContains同时处理的事实,response是响应对象,而且双方都是HTML和唯一的必须是相当于,不一定相等。

这是假设您正在使用(的子集)django.test.SimpleTestCase

+0

正如预料的那样非常简单,但我无法弄清楚。非常感谢。非常感激!我确实使用了TestCase的一个子类,但是我已经用'assert'Login'%reverse(“userlogin”)在response.content'中去了:) –

+0

Check out https://github.com/django/django/tree/master /测试你是否需要更多灵感来进行测试。 – knbk