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
我正在尝试为JSON响应编写解析测试用例。我添加了我尝试过的所有代码。当我运行测试用例时出现错误"测试失败: - [MyCountryTests testParserMethod]失败:((对象。 title(等于)(jsonDict [@" title"]))失败:("< 00000000 00000000>")不等于("< 78215819 01000000> ")。请有人帮我解决这个问题。任何帮助都会得到帮助。 "
答案 0 :(得分:1)
您的测试用例在此行失败:
XCTAssertEqual(object.title, jsonDict[@"title"]);
这是因为你的MyCountry对象没有设置title
。
您将对象初始化为:MyCountry *object = [[MyCountry alloc]init];
但是,您应该使用指定的初始化程序,即:- (instancetype)initWithDictionary:(NSDictionary *)mycountryData
这样你的对象就会设置它的标题。
除了使用XCTAssertEqual();
来比较你的字符串,你应该使用这样的东西:
XCTAssertTrue([object.title isEqualToString:jsonDict[@"title"]],@"Strings are not equal %@ %@", object.title, jsonDict[@"title"]);