assertEqual不会打印不相等的对象

时间:2014-01-19 03:54:19

标签: python-3.x python-3.3 python-unittest

所以我有一些方法返回一些相当复杂的对象,我想测试这个输出。我使用unittest构造单元测试,我发现计算出的对象和我构造的预期对象不相等。太糟糕了。

让我感到惊讶的是,错误消息不打印两个对象,只有一些平淡的repr。每个对象定义__str____eq__,我知道__str__,通过在raise ValueError函数中放置__str__进行验证。

是什么给出了?

1 个答案:

答案 0 :(得分:1)

Python中的许多地方使用对象的NSArray *fullArray= All objects from the parse ; NSMutableArray *selectedObjectsArray = [NSMutableArray array]; for(int i=0 ; i<fullArray.count ; i++){ if (selectedObjectsArray.count==1 && ![[[selectedObjectsArray objectAtIndex:0] objcetForKey:@"type"] isEqualToString:[[Full array objectAtIndex:i] objcetForKey:@"type"]]) { [selectedObjectsArray addObject:[fullArray objectAtIndex]]; break ; }else{ [selectedObjectsArray addObject:[fullArray objectAtIndex]]; } } 而不是for object in fullArray { if (selectedObjectsArray.count==1 && ![[selectedObjectsArray[0][@"type"] isEqualToString:fullArray[i][@"type"]) { selectedObjectsArray[1]=[fullArray[i]; break ; }else{ selectedObjectsArray[0]=[fullArray[i]; } } ,因为repr()通常指定一个确切的实例。

如果您想要查看实际的str(),许多断言无论什么方法都允许自定义错误消息:

repr()