2016-03-23 3 views

Antwort

1

Nun können Sie eine tatsächlichen Post Anfrage

import requests 

def test_post(): 
    resp = requests.post('http://localhost/name', 
         data={'arg': 'value'}, 
         cookies={'from-my': 'browser'}) 
    assert resp.status_code == 200 

machen würde ich mit py.test statt Unittest empfehlen, aber wenn Sie Unittest

class TestPost(unittest.TestCase): 

    def test_post(self): 
     resp = requests.post('http://localhost/name') 
     self.assertEqual(resp.status_code, 200) 
+0

Ich bin eine HTTP-Anfrage, wie Sie gesagt haben. Aber so will ich nicht. Ich möchte nicht die tatsächliche API ausführen und HTTP-Post-Anfrage machen, sondern ich möchte es mit Unittest-Modul vortäuschen. Ich mache wie: - 'Antwort = self.app.post ('/ Name', Daten = json.dumps (Daten), Header = self.headers, Cookie = self.cookie)' Der Fehler zeigt es ist ,, TypeError: __init __() hat ein unerwartetes Schlüsselwortargument 'cookie' –

+0

Wenn Sie die API nicht ausführen, was genau möchten Sie testen? –

+0

Die Flasche 'test_client' akzeptiert keine' Cookies' als Parameter. Ich benutzte die Bibliothek 'requests', um http-Anfragen zu stellen. Wenn Sie den flask 'test_client' verwenden, können Sie Cookies auf dem Client setzen, bevor Sie die Anfrage stellen -' app.test_client(). Set_cookie (domain, cookie_name, cookie_value) ' –

0

Sie tun könnten, wie bereits vorgeschlagen verwenden müssen und führen Sie einen Abnahmetest gegen eine laufende Testinstanz mit echten Postanforderungen durch.

Sie können auch Flaskendokumentation zum Testen unter http://flask.pocoo.org/docs/0.10/testing/ ausprobieren, die zeigt, wie Komponententests durchgeführt werden, in denen Sie die eingehenden Anforderungen und Testergebnisse überspielen können.