AttributeError: 'FlaskClient' object has no attribute 'addition'
AttributeError: 'FlaskClient' object has no attribute 'addition'
我在使用 python/flask 进行非常简单的单元测试时遇到了一些问题。我尝试遵循 flaskr 和 test_flasker.py 的概念,但它抛出了一个错误,我找不到太多关于它的信息:
AttributeError: 'FlaskClient' object has no attribute 'addition'
我进行的 2 个测试中的一个有效。 self.app.get('/')
确实 return "Hello World" 并且此测试通过。但是"addition"测试好像根本找不到
我的代码:
from flask import Flask
payment_app = Flask(__name__)
@payment_app.route('/')
def hello_world():
return 'Hello World'
def addition(a, b):
c = a + b
return c
if __name__ == '__main__':
#remove debug=True when running in production
payment_app.debug = True
payment_app.run()
我的测试代码:
import os
import sys
from payment_app import *
import unittest
class PaymentTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass
def setUp(self):
self.app = payment_app.test_client()
def tearDown(self):
pass
def test_init(self):
result = self.app.get('/')
print result.data
self.assertEqual(result.data, "Hello World")
def test_addition(self):
result = self.app.addition(2, 5)
self.assertEqual(result, 7)
if __name__ == '__main__':
unittest.main()
提前致谢!
彼得
函数 addition(a, b)
不是 Flask app
对象的成员,而是 payment_app.py 文件的成员。因此,调用 self.app.addition(2, 5)
失败。
将您的测试用例更改为 addition(2, 5)
,一切都会正常:
class PaymentTestCase(unittest.TestCase):
# some parts missing...
def test_addition(self):
result = addition(2, 5)
self.assertEqual(result, 7)
我在使用 python/flask 进行非常简单的单元测试时遇到了一些问题。我尝试遵循 flaskr 和 test_flasker.py 的概念,但它抛出了一个错误,我找不到太多关于它的信息:
AttributeError: 'FlaskClient' object has no attribute 'addition'
我进行的 2 个测试中的一个有效。 self.app.get('/')
确实 return "Hello World" 并且此测试通过。但是"addition"测试好像根本找不到
我的代码:
from flask import Flask
payment_app = Flask(__name__)
@payment_app.route('/')
def hello_world():
return 'Hello World'
def addition(a, b):
c = a + b
return c
if __name__ == '__main__':
#remove debug=True when running in production
payment_app.debug = True
payment_app.run()
我的测试代码:
import os
import sys
from payment_app import *
import unittest
class PaymentTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass
def setUp(self):
self.app = payment_app.test_client()
def tearDown(self):
pass
def test_init(self):
result = self.app.get('/')
print result.data
self.assertEqual(result.data, "Hello World")
def test_addition(self):
result = self.app.addition(2, 5)
self.assertEqual(result, 7)
if __name__ == '__main__':
unittest.main()
提前致谢!
彼得
函数 addition(a, b)
不是 Flask app
对象的成员,而是 payment_app.py 文件的成员。因此,调用 self.app.addition(2, 5)
失败。
将您的测试用例更改为 addition(2, 5)
,一切都会正常:
class PaymentTestCase(unittest.TestCase):
# some parts missing...
def test_addition(self):
result = addition(2, 5)
self.assertEqual(result, 7)