Ich muss einen Testfall schreiben, um die Erlaubnis des Benutzers zu testen. In jedem Testfall hat UserA unterschiedliche Berechtigungen und führt die Überprüfung durch. Ich möchte Admin-Rolle verwenden, um Benutzer eine andere Berechtigung in setup_method bereitzustellen. Wie kann ich Parameter in setup_method übergeben, also vor jedem Start des Testfalls, kann ich einen anderen Testfall haben? Ich habe etwas wie folgt, aber nicht sicher, wie Parameter in setup_method übergeben werden.wie Parameter in setup_method für pytest übergeben werden
class TestPermission():
@classmethod
class setup_method(self, permission):
login as amdin
provide permission to userA
logout
login as userA
@classmethod
class teardown_method(self):
logout as userA
@fixure(permission1)
class test_permissionA(self):
assert drive.find_element_by_xpath('//div[@id="permission1"]') is True
assert drive.find_element_by_xpath('//div[@id="permission2"]') is False
assert drive.find_element_by_xpath('//div[@id="permission3"]') is False
@fixure(permission2)
class test_permissionB(self):
assert drive.find_element_by_xpath('//div[@id="permission1"]') is False
assert drive.find_element_by_xpath('//div[@id="permission2"]') is True
assert drive.find_element_by_xpath('//div[@id="permission3"]') is False
Was ist, wenn ich das Assert-Ergebnis basierend auf unterschiedlichen Berechtigungen anpassen muss. Wie auch immer, ich kann die Parameter für jeden Testfall angeben. wie userA_permission, muss ich a, b, c verifizieren. userB_permission, ich muss d, e, f überprüfen. – jacobcan118
In diesem Fall können Sie anstelle eines Diktats eine Liste als erwartetes Ergebnis verwenden. Oder irgendein anderes kompliziertes Objekt, das zu Ihren Bedürfnissen passt. – askalozubov
Wenn es für Sie nicht funktioniert, dann können Sie für jede Berechtigung einen separaten Test ausführen, aber als ersten Schritt innerhalb Ihres Tests die Berechtigung setA (ohne die Verwendung von Fixtures) aufrufen: ' def set_permission_to_userA (Berechtigung): login_with_admin() set_permission (Erlaubnis) def test_premission_one(): set_permission_to_userA (permission1) login_with_userA() verifications_here() def test_premission_two(): set_permission_to_userA (permission2) login_with_userA() verifications_here() ' – askalozubov