鉴于main.py
中的简单Flask应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hi():
return 'hi', 200
我想为它编写单元测试,但我不确定如何将main.py
导入test.py
。我得到NameError: name 'app' is not defined
以获取以下代码。
import unittest
class MyTestCase(unittest.TestCase):
def test_hi(self):
self.app = app.test_client()
r = self.app.get('/')
assert b'hi' in r.data
有没有办法在保持相同目录结构的同时编写此测试(基本上main.py
和test.py
在同一目录中?)
答案 0 :(得分:0)
如果您的两个文件都在同一个文件夹中,那么您的测试文件只需要从main
模块导入应用程序:
import unittest
from main import app
class MyTestCase(unittest.TestCase):
def test_hi(self):
self.app = app.test_client()
r = self.app.get('/')
assert b'hi' in r.data
=>
python -m unittest test.py
.
----------------------------------------------------------------------
Ran 1 test in 0.009s
OK