2024-09-27 20:17:06 发布
网友
在python2.7unittest框架中
self.assertEquals(u"a","a")
不会失败。在
如何比较unittest中的字符串,使str不等于unicode?在
str
unicode
我不想把每一个
与
v = foo(...) self.assertEquals(type(v),str) self.assertEquals(v,"a")
我不能使用^{},因为只有当两个对象的类型完全相同时,才会调用函数obj,因此当我希望调用函数时,它不会被精确地调用。在
通过在测试类中定义自己的测试(或者更好的是为每个测试套件定义一个子类)可以轻松地将附加测试附加到单元测试套件中。同时检查类型和相等性的通用测试如下:
def assertEqualsValType(self,obj1,obj2,msg=None): self.assertEquals(type(obj1),type(obj2),msg) self.assertEquals(obj1,obj2,msg)
或者更短:
该函数检查两个给定对象的类型和值是否相等。(这些不是专门针对字符串对象本身的,但是显然,如果需要更复杂的测试,可以重写它)。换言之,通过在一个测试中使用多个测试来隐藏复杂性。在
然后调用函数self.assertEqualsValType('a',u'a'),这将失败。此外,通过尽可能保持测试的通用性,您可以找到它的其他用途:例如self.assertEqualsValType(2,2.0)也将失败。在
self.assertEqualsValType('a',u'a')
self.assertEqualsValType(2,2.0)
您还可以重写上面的函数以提供更多信息等
这样你就可以开始一个更高级的单元测试了。例如:
class BaseUnitTest(unittest.TestCase): def assertEqualsValType(self,obj1,obj2,msg=None): self.assertEquals(type(obj1),type(obj2),msg) self.assertEquals(obj1,obj2,msg) def assertBetweenEqual(self, value, min_value, max_value): self.assertGreaterEqual(value, min_value) self.assertLessEqual(value, max_value) def assertFoo(self,para,meters): #... pass
你可以从这些子类化你的整个测试库。在
通过在测试类中定义自己的测试(或者更好的是为每个测试套件定义一个子类)可以轻松地将附加测试附加到单元测试套件中。同时检查类型和相等性的通用测试如下:
或者更短:
^{pr2}$该函数检查两个给定对象的类型和值是否相等。(这些不是专门针对字符串对象本身的,但是显然,如果需要更复杂的测试,可以重写它)。换言之,通过在一个测试中使用多个测试来隐藏复杂性。在
然后调用函数
self.assertEqualsValType('a',u'a')
,这将失败。此外,通过尽可能保持测试的通用性,您可以找到它的其他用途:例如self.assertEqualsValType(2,2.0)
也将失败。在您还可以重写上面的函数以提供更多信息等
这样你就可以开始一个更高级的单元测试了。例如:
你可以从这些子类化你的整个测试库。在
相关问题 更多 >
编程相关推荐