2015-04-12 48 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