2013-08-20 95 views
1

django-webtest,每个测试TestCase子类自带self.app,这是webtest.TestApp的一个实例,然后我可以使它作为用户A登录self.app.get('/ ”,用户= 'A')。django-webtest与多个测试客户端

但是,如果我想测试用户A和用户B在测试中的行为,我该如何做?

似乎self.app只是传入了extra_environ的DjangoTestApp()。是否适合只创建它的另一个实例?

回答

0

我还没有尝试按照您的建议设置DjangoTestApp的另一个实例,但是我已经编写了复杂的测试,其中在用户AI发出请求后,然后切换到用户B发出请求,没有问题,每种情况都会通过在提出请求时用户或用户名,例如就像你已经写过的那样。

唯一未按预期工作的部分是在进行未经身份验证的请求时(例如, self.app.get('/', user=None)。这没有像预期的那样工作,而是继续在请求之前立即使用请求中的用户。

要重置应用程序状态(应允许您以顺序方式模拟多个用户的大多数工作流程),您可以运行self.renew_app()这将刷新您的应用程序状态,从而有效记录当前用户。

要测试多个用户同时访问(您的问题没有明确指出您想要测试的内容),那么设置另一个DjangoTestApp实例似乎值得探索。