所以我有一些方法返回一些相当复杂的对象,我想测试这个输出。我使用unittest
构造单元测试,我发现计算出的对象和我构造的预期对象不相等。太糟糕了。
让我感到惊讶的是,错误消息不打印两个对象,只有一些平淡的repr
。每个对象定义__str__
和__eq__
,我知道__str__
,通过在raise ValueError
函数中放置__str__
进行验证。
是什么给出了?
答案 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()