2017-06-06 8 views
0

Ich versuche, einen Pytest auf eine Funktion ohne Rückgabewert zu tun, aber offensichtlich Wert ist keine in Pytets. Ich habe mich gefragt, ob es dafür eine Lösung gibt.Pytest-Funktion ohne Rückgabewert

hier eine Funktion, die ich zu Test versuchen:

def print_top_movies_url(): 
    for item in movie_link[:100]: 
     print item.contents[1] 
+1

Was wollen Sie erreichen, um nichts von "kein Wert" zu unterscheiden? – phd

Antwort

0

Es gibt nicht so etwas wie eine Funktion ohne Rückgabewert in Python. Wenn eine Funktion keinen Wert explizit zurückgegeben hat, gibt Python implizit None zurück.

+0

Während das stimmt, beantwortet es die Frage nicht. –

0

Das beste, was zu tun wäre, um die besten Filme zu trennen und sie zu drucken.

Zum Beispiel könnten Sie eine top_movie_urls haben, die wie folgt aussieht:

def top_movie_urls(): 
    urls = [] 
    for item in movie_link[:100]: 
     urls.append(item.contents[1]) 
    return urls 

(oder machen es generator function a)

das zu testen, einfach ist, und wo immer Sie es nennen, können Sie jetzt einfach mache etwas wie print('\n'.join(top_movie_urls())).


Wenn Sie wirklich die Ausgabe stattdessen testen möchten, können Sie pytest die output capturing, um auf die Ausgabe der getesteten Funktion und prüfen, ob verwenden.