Przykłady używania Doctestów w Django w sposób Agile / BDD
Jestem zainteresowany poznaniem testów Doctests i Unitów w bardziej zwinny / BDD sposób. Znalazłem kilka samouczków, które wydają się rozsądne, ale są tylko miniaturkami. Naprawdę chciałbym zobaczyć kod źródłowy niektórych projektów Django, które zostały opracowane w stylu BDD.
Nie jestem pewien, w jaki sposób radzisz sobie z obiektami żądań itp. Mam sytuację, w której wdrożyłem moją aplikację i otrzymuję zupełnie inne zachowanie w produkcji, które zrobiłem w trakcie tworzenia, a nawet od powłoki Pythona podczas produkcji serwer. Mam nadzieję, że niektóre Doctests pomogą mi zdiagnozować to i otworzyć drzwi do bardziej zwinnego procesu pisania testów.
Oto kod, który próbuję przetestować:
def match_pictures_with_products( queryset, number_of_images = 3):
products = []
i = 0
for product in queryset:
if i < ( number_of_images ):
image = product.imagemain_set.all()[:1]
product.photo_url = image[0].photo.url
products.append(product)
i += 1
return products
def index(request):
"""returns the top 10 most clicked products"""
products = Product.objects.all()[:10]
products = match_pictures_with_products( products, 10) .
return render_to_response('products/product_list.html', {'products': products})
Jak mogę utworzyć Doctest, który zapewnia, że indeks zwraca 10 obiektów?
Zapytania dotyczące produktu wydają się działać poprawnie z powłoki na serwerze produkcyjnym. Właściwy serwer w ogóle nie zwraca żadnych produktów.