我第一次使用fixture模块,试图获取更好的fixture数据以便让我们的功能测试更加完整。但我发现fixture模块有些笨重,希望有更好的方法来完成我的需求。这是一个基于Python 2.7 的 Flask/SQLAlchemy 应用,并且我们使用 nose 作为测试运行器。
我有一组员工数据,每个员工都有自己的角色。应用中有几个页面拥有相对复杂的权限,我希望确保这些权限也被测试到。
我创建了一个 DataSet,其中包含了每种类型的角色(应用中大约有15种角色)。
我希望能编写一个功能测试,以检查只有特定的人才能访问页面。 (实际权限比这个更复杂,我只是想用一个简单的例子来演示给您看。)
类似于以下内容:
有没有一种方法可以生成装置数据,使我的开发人员不必记住每次添加角色时都要添加一行到装置中?我们在应用程序的其他地方有所有角色的规范列表,因此我有这个。我对这些内容或fixture模块并没有执着,所以我很乐意听取建议!
我有一组员工数据,每个员工都有自己的角色。应用中有几个页面拥有相对复杂的权限,我希望确保这些权限也被测试到。
我创建了一个 DataSet,其中包含了每种类型的角色(应用中大约有15种角色)。
class EmployeeData(DataSet):
class Meta:
storable = Employee
class engineer:
username = "engineer"
role = ROLE_ENGINEER
class manager:
username = "manager"
role = ROLE_MANAGER
class admin:
username = "admin"
role = ROLE_ADMIN
我希望能编写一个功能测试,以检查只有特定的人才能访问页面。 (实际权限比这个更复杂,我只是想用一个简单的例子来演示给您看。)
类似于以下内容:
def test_only_admin_can_see_this_page():
for employee in Employee.query.all():
login(employee)
with self.app.test_request_context('/'):
response = self.test_client.get(ADMIN_PAGE)
if employee.role == ROLE_ADMIN
eq_(200, response.status_code)
else:
eq_(401, response.status_code)
logout(employee)
有没有一种方法可以生成装置数据,使我的开发人员不必记住每次添加角色时都要添加一行到装置中?我们在应用程序的其他地方有所有角色的规范列表,因此我有这个。我对这些内容或fixture模块并没有执着,所以我很乐意听取建议!