objective c - NSDecimalNumber unit test struggle -
this question has answer here:
i trying write unit test method doing operations on nsdecimalnumber. simplicity prepared simple unit test snippet:
- (void) testtmp { nsdecimalnumber* val = [nsdecimalnumber decimalnumberwithstring:@"0"]; xctassertequal([val stringvalue], @"0"); } unfortunately fails , can't work. doing wrong? how test if nsdecimalnumber's value equals other value?
xctassertequal() compares object references. should use xctassertequalobjects().
- (void) testtmp { nsdecimalnumber* val = [nsdecimalnumber decimalnumberwithstring:@"0"]; xctassertequalobjects([val stringvalue], @"0"); } btw: should not compare string representation of number, number …:
- (void) testtmp { nsdecimalnumber* val = [nsdecimalnumber decimalnumberwithstring:@"0"]; xctassertequalobjects(val, [nsdecimalnumber decimalnumberwithstring:@"0"]); } … or (did not check it, whether nsnumber , nsdecimalnumber can equal, should way) …
- (void) testtmp { nsdecimalnumber* val = [nsdecimalnumber decimalnumberwithstring:@"0"]; xctassertequalobjects(val, @0); } however, instances of nsdecimalnumber floating point values. comparing them equity voodoo.
Comments
Post a Comment