- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个测试类,我想在其中创建并登录一个用户:
class UserModelTest(TestCase):
fixtures = ['group_perms']
@classmethod
def setUpClass(cls):
cls.standard_user = UserFactory(first_name='Firsto', last_name='Namo')
@classmethod
def tearDownClass(cls):
cls.standard_user.delete()
def setUp(self):
self.moderator = ModeratorFactory() # I'm here because I need access to fixtures to work - but I'd rather be in setUpClass
self.client.login(email=self.moderator.email, pass='pass') # I'm here because I need access to self.client to work - but I'd rather be in setUpClass
所以我的问题(或两个):
我可以将版主移动到 setUpClass
方法中吗(假设它需要访问固定装置)?
我可以在 setUpClass
中访问 self.client
吗?
最佳答案
简短的回答是否定的 - 但这不是故事的结局。
self.client
是配置为“预测试”序列的一部分的便利工具。这意味着它是在每次测试的基础上配置的;所以您可以在 setUp()
中使用它,但不能在 setUpClass()
中使用它。与固定装置类似 - 它们是作为预测试的一部分设置的,因此它们在 setUpClass()
中不可用。
但是,self.client
并没有什么特别神奇的地方——它只是 Django 为您设置的 django.test.Client
的一个实例,因为它非常有用有在身边很有用。如果需要,您可以设置自己的客户端 - 您只需实例化 Client
的实例:
from django.test import Client
...
self.myclient = Client()
然后像使用 self.client
一样使用 self.myclient
。如果您需要检查“两个用户”行为,这将非常有用 - 例如,检查是否管理员批准了一篇文章,然后用户可以看到它。您创建了两个客户端,使用不同的帐户登录它们,然后用每个客户端GET
相同的文章 URL。在您的情况下,您可以创建一个纯粹用于类(class)设置事件的客户端。
在 setUpClass()
中使用 django.test.Client
的唯一注意事项与事务副作用有关。 setUpClass()
不属于测试用例的事务保护范围,因此您在 setUpClass()
中所做的任何操作都将“永久”保存在测试数据库中。您需要手动回滚或撤消 setUpClass()
所做的任何数据库更改,否则您将获得交叉测试用例的副作用。
如果您使用的是 Django 1.8,则可以改用 setUpTestData()
- 在这种情况下,客户端所做的任何事情都会受到事务的保护。 p>
关于python - 在 setUpClass 中访问 Django 测试客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28084683/
我有一个 python 单元测试。在 setupClass 方法中,我执行了一些耗时的任务......测试本身运行得非常快。现在我想用多组参数运行同一个测试用例。我怎样才能做到这一点? 我已经尝试过使
当使用 Python 的内置单元测试时,至少有 2 种不同的方法来组织类级设置,使用 setUpClass() 或只使用老式类成员。何时使用一个,何时使用另一个? class TestFoo(unit
我在每个测试用例中都使用模拟装饰器。有什么方法可以将装饰器合并到 setUpClass 吗? 我的单元测试就像: class TestCase(): @mock.patch('
如果 setUpClass 函数下某些条件不满足,我想跳过所有单元测试。喜欢- @classmethod def setUpClass(cls): if(!condition):
我的代码: class TestSystemPromotion(unittest2.TestCase): @classmethod def setUpClass(self): ...
我正在尝试开始使用 unittest,但我在让 setUpClass() 工作时遇到了问题。这是我的测试代码... import unittest class TestRepGen(unittest.
在下面的例子中可以看出,我为所有的测试定义了一个BaseClass,每个测试用例类都继承了基类。 这两个类都需要执行一次初始化,当执行test_vehicles.py时,我需要确保基类的setUpCl
在下面的例子中可以看出,我为所有的测试定义了一个BaseClass,每个测试用例类都继承了基类。 这两个类都需要执行一次初始化,当执行test_vehicles.py时,我需要确保基类的setUpCl
使用 python 2.6.6 的 unittest 模块,如何在所有测试运行后调用代码? 请考虑以下 MCVE: #!/bin/env python import unittest def setU
我正在尝试为依赖于模块级数据(JSON 文件)的程序编写单元测试。 所以,我想我会使用 setUpClass 类方法设置一个测试 JSON 文件,然后在测试运行后将其删除。 我遇到的问题是,模块级 J
早上好,我正在使用从 django.test.TestCase 继承的测试,我在使用 setupclass 方法时遇到问题,因为访问数据库并引发此错误“失败:不允许访问数据库,使用“django_db
假设我有以下 Python 单元测试: import unittest def Test(unittest.TestCase): @classmethod def setUpClass
这两种方法之间是否存在任何运行时逻辑差异?或者有什么行为差异? 如果不是,那么我是否应该忘记 __init__ 并仅使用 setUpClass 来考虑单元测试类,例如命名空间而不是语言 OOP 范例?
我正在寻找 python 2.7 unittest setUpClass() 方法的一些基本示例。我正在尝试在我的模块中测试一些类方法,并且我已经做到了: import unittest impor
我有如下的单元测试代码: import unittest class MyUnitTest(unittest.TestCase): def setUpClass(self):
我正在使用 pyUnit 框架对我的应用程序进行单元测试。如果 setUpClass 中的某些条件失败,有什么方法可以跳过类里面的所有测试? 目前,我正在 setUpClass 中设置环境(创建资源、
我是Python的初学者,开始用Python设计一个单元测试,我需要在运行测试类之前向服务器发布一些消息(因为它会搜索它们)。因此我需要调用一个非静态方法 postMessages()。 我收到的错误
在 unittest python 库中,我可以在每次测试之前使用 setUp 方法设置变量,并在所有测试之前使用 setUpclass 方法。 如何将数据从 setUpClass 传递到 setUp
是否有一些技巧可以在“描述”测试套件的开始和结束时运行一些代码? 我正在寻找类似于 XUnit 中的 setUpClass/tearDownClass 的东西 在这个例子中,我想在所有测试之前只运行一
我有一个测试类,我想在其中创建并登录一个用户: class UserModelTest(TestCase): fixtures = ['group_perms'] @classmeth
我是一名优秀的程序员,十分优秀!