Objective c 测试“isEqual”和“hash”方法

Objective c 测试“isEqual”和“hash”方法,objective-c,unit-testing,ocmock,Objective C,Unit Testing,Ocmock,这里有一个非常简单的“bug场景”:我有一个非常有效的测试MYPerson类(覆盖了'isEqual'和'hash'方法)。然后我决定添加MYJob类的一个新属性job,并忘记修改isEqual:和hash方法。结果是,当两个MYPerson实例具有不同的jobs时,这两种方法都返回YES。看起来像是单元测试捕获的完美bug,但由于OCMock的限制,我在编写这样的测试时遇到了麻烦-显然isEqual和hash方法都不能被存根。如果我在测试中使用实际的MYJob对象,我将测试MYJob而不是MY

这里有一个非常简单的“bug场景”:我有一个非常有效的测试
MYPerson
类(覆盖了'isEqual'和'hash'方法)。然后我决定添加
MYJob
类的一个新属性
job
,并忘记修改
isEqual:
hash
方法。结果是,当两个
MYPerson
实例具有不同的
job
s时,这两种方法都返回
YES
。看起来像是单元测试捕获的完美bug,但由于
OCMock
的限制,我在编写这样的测试时遇到了麻烦-显然
isEqual
hash
方法都不能被存根。如果我在测试中使用实际的
MYJob
对象,我将测试
MYJob
而不是
MYPerson
实现,对吗


有人对此有好的解决方案或想法吗?

像这样的东西怎么样:
-(void)testshouldnotbequalondifferentjob{MYPerson*p1=[MYPerson new];*p1.job=[MYJob new];MYPerson*p2=[MYPerson new];xctasert([p1 isqual:p2]);}
像这样的东西怎么样:
-(void)testshouldnotbequalondifferentjob{MYPerson*p1=[MYPerson new];*p1.job=[MYJob new];MYPerson*p2=[MYPerson new];xctasert([p1 isEqual:p2]);}