Eri*_*ick 6 python unit-testing nose flask
我对Python很陌生,所以如果这对于基本的东西来说太多了,我会提前道歉.
我的情况类似于如何使用SQLAlchemy设置Flask应用程序进行测试?对我来说最大的区别在于,与我在互联网上看到的大多数其他Flask示例不同,我的应用程序的大多数代码都在一个类中.出于某种原因,这导致我的单元测试无法正常工作.以下是我的应用程序和测试的基本设置:
应用:
from Flask import Flask
app = Flask(__name__)
class MyApplication():
def __init__(self, param1, param2):
app.add_url("/path/<methodParam>", "method1", self.method1, methods=["POST"])
# Initialize the app
def getApplication(self):
options = # application configuration options
middleware = ApplicationMiddleware(app, options)
return middleware
def method1(self, methodParam):
# Does useful stuff that should be tested
# More methods, etc.
Run Code Online (Sandbox Code Playgroud)
应用测试:
import unittest
from apppackage import MyApplication
class ApplicationTestCase(unittest.TestCase):
def setUp(self):
self.tearDown()
param1 = # Param values
param2 = # Param values
# Other local setup
self.app = MyApplication(param1, param2).app.test_client()
def tearDown(self):
# Clean up tests
def test_method1(self):
methodParam = # Param value
response = self.app.post("path/methodParam")
assert(reponse.status_code == 200)
Run Code Online (Sandbox Code Playgroud)
当我通过我的测试
nosetests --with-coverage --cover-package apppackage ./test/test_application.py
我收到以下错误:
param2).app.test_client()AttributeError:MyApplication实例没有属性'app'
我已经尝试在类声明中移动应用程序,但这没有任何好处,并且不是我见过的所有其他单元测试指南都做到了.为什么我的单元测试找不到"app"属性?
您的单元测试找不到“app”属性,因为 MyApplication 没有该属性。定义 MyApplication 的模块中有一个“app”属性。但那是两个不同的地方。
也许可以尝试以下方法:
class MyApplication(object):
def __init__(self, param1, param2):
self.app = Flask(__name__)
self.app.add_url("/path/<methodParam>", "method1", self.method1, methods=["POST"])
# Initialize the app
Run Code Online (Sandbox Code Playgroud)
或者,您似乎还有一个“getApplication”方法,您实际上并没有使用它做任何事情,但我想您正在将它用于某些用途。也许你真的希望在测试中得到这个......
def setUp(self):
self.tearDown()
param1 = # Param values
param2 = # Param values
# Other local setup
self.app = MyApplication(param1, param2).getApplication().test_client()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4704 次 |
| 最近记录: |