2015-12-14 76 views
3

我的代碼測試異常返回碼使用瓶

class APITests(unittest.TestCase): 

    def setUp(self): 
     app.config['TESTING'] = True 
     self.app = app.test_client() 
     app.config['SECRET_KEY'] = 'kjhk' 

    def test_exn(self, query): 
     query.all.side_effect = ValueError('test') 
     rv = self.app.get('/exn/') 
     assert rv.status_code == 400 

我要檢查的self.app.get('/exn/返回代碼)以下塊。但是,我注意到query.all()將異常傳播到測試用例,而不是將其捕獲並返回錯誤代碼。

如何在Flask中拋出異常時檢查無效輸入的返回碼?

+0

你能張貼控制器代碼。 – Dan

回答

0

你可以assertRaisewerkzeug的例外。

例子:

from werkzeug import exceptions 
def test_bad_request(self): 
    with self.app as c: 
     rv = c.get('/exn/', 
        follow_redirects=True) 
     self.assertRaises(exceptions.BadRequest)