Mah*_*avi 2 python nose nosetests parameterized-unit-test nose-parameterized
我正在尝试使用nose_parameterized测试并希望将其用于单元测试方法。
from nose.tools import assert_equal
from nose_parameterized import parameterized
import unittest
Class TestFoo(unittest.TestCase):
def setUp(self):
self.user1 = "Bar"
self.user2 = "Foo"
@parameterized.expand([
("testuser1",self.user1,"Bar"),
("testuser2",self.user2,"Foo")
]
def test_param(self,name,input,expected):
assert_equal(input,expected)
Run Code Online (Sandbox Code Playgroud)
但self在装饰器函数中没有定义。有解决方法吗?我知道我可以使用全局类变量,但我需要在setUp.
getattr一种解决方法是在装饰器和测试函数中使用包含属性名称的字符串:
@parameterized.expand([
("testuser1", "user1", "Bar"),
("testuser2", "user2", "Foo")
])
def test_param(self, name, input, expected):
assert_equal(getattr(self, input), expected)
Run Code Online (Sandbox Code Playgroud)
使用这种方法,test_param假设其参数的值input是应检查其值的属性名称expected。