Reputation: 201
Code:
-(void) testParserMethod {
NSDictionary *jsonDict= @{ @"title" : @"",
@"description" : @"",
@"imageHref" : @"",
};
MyCountry *object = [[MyCountry alloc]init];
XCTAssertEqual(object.title, jsonDict[@"title"]);
XCTAssertEqual(object.description, jsonDict[@"description"]);
XCTAssertEqual(object.ImageHref, jsonDict[@"imageHref"]);
}
@interface MyCountry : NSObject
@property (nonatomic, readonly) NSString *title;
@property (nonatomic, readonly) NSString *description;
@property (nonatomic, readonly) NSString *ImageHref;
- (instancetype)initWithDictionary:(NSDictionary *)mycountryData;
@end
#import "MyCountry.h"
@implementation MyCountry
@synthesize title, description, ImageHref;
- (instancetype)initWithDictionary:(NSDictionary *)mycountryData
{
self = [super init];
if (self)
{
title = mycountryData[@"title"];
description = mycountryData[@"description"];
ImageHref = mycountryData[@"imageHref"];
}
return self;
}
@end
I am trying to write parse test case for JSON response.I added all code what i tried.When i run the test case getting error as "test failure: -[MyCountryTests testParserMethod] failed: ((object.title) equal to (jsonDict[@"title"])) failed: ("<00000000 00000000>") is not equal to ("<78215819 01000000>").Please somebody help me to fix this issue.any help will be appreicated. ".
Upvotes: 0
Views: 180
Reputation: 394
Your test case is failing at this line:
XCTAssertEqual(object.title, jsonDict[@"title"]);
It's because your MyCountry object doesn't have its title
set.
You initialize your object as : MyCountry *object = [[MyCountry alloc]init];
However, you should use your designated initializer which is: - (instancetype)initWithDictionary:(NSDictionary *)mycountryData
That way your object will have its title set.
Also instead of using XCTAssertEqual();
to compare your Strings, you should use something like this:
XCTAssertTrue([object.title isEqualToString:jsonDict[@"title"]],@"Strings are not equal %@ %@", object.title, jsonDict[@"title"]);
Upvotes: 1