[英]Django WebServer During Testing
我正在用Django编写一个复杂的Web应用程序。 有很多组件。 特别是两个,分别是Django服务器(以下称此Server
)和一个C ++应用程序服务器(以下称此Calculator
),该Server
为Server
提供计算。 当Server
希望完成计算时,它将命令发送到正在监听Calculator
的套接字。 像这样:
{
"command": "doCalculations"
}
现在, Calculator
可能需要在不同时间提供不同的信息来完成其工作。 因此,不是将数据直接传递给命令中的Calaculator
,而是由Calculator
询问其需要什么。 它通过在Server
上调用RESTful API来实现:
https://Server/getStuff?with=arguments
然后, Calculator
将使用此调用中的数据进行计算,并使用答案答复Server
。
当我尝试使用Django的unittest框架进行单元测试时,问题就开始了。 我在测试中设置了一堆数据结构,但是当Server
调用Calculator
,它需要在REST API中提供此数据,以便Calculator
可以获取所需的数据。 问题在于Django测试框架不会启动Web服务器,如果我手动执行此操作,它将从真实数据库而不是测试用例中读取数据。
有谁知道如何使用外部人员/流程可用的数据运行单元测试?
我希望这是有道理的...
您需要指定要加载到测试类中的灯具。
https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading
class MyTest(TestCase):
fixtures = ['data.json']
def setUp(self):
# do stuff
def tearDown(self):
# do stuff
可以使用python manage.py dumpdata
检索data.json
python manage.py dumpdata
。
它将以JSON格式填充来自主数据库的数据。
data.json
应该存在于您正在测试的应用程序的fixtures
文件夹中。 (如有必要,创建一个)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.