对象的unit testing

我是一个学习者的目标c,并开始做unit testing,

我想unit testing下面的对象

@interface Media : NSObject{ } @property (nonatomic, readonly) NSString *name; @property (nonatomic, readonly) NSString *sex; @property (nonatomic, readonly) NSString *Description; - (instancetype)initWithDictionary:(NSDictionary *)mediaData; @end #import "Media.h" @interface Media() @property (nonatomic, strong) NSString *name; @property (nonatomic, strong) NSString *sex; @property (nonatomic, strong) NSString *Description; @end @implementation Media - (instancetype)initWithDictionary:(NSDictionary *)mediaData { self = [super init]; if (self) { _name; = mediaData[Name];//getting from Json _sex = mediaData[Sex]; _description = mediaData[Description]; } return self; } @end 

我的testingclass

 #import <UIKit/UIKit.h> #import <XCTest/XCTest.h> #import "Media.h" @interface ModelUnitTest : XCTestCase @end @implementation ModelUnitTest - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [super tearDown]; } - (void)testModelObject:(id)file { XCTAssertNotNil(file); XCTAssertTrue(file isKindOfClass:[Media class]]); Media * fileObj = (Media *)file; XCTAssertNotNil(fileObj.name); XCTAssertNotNil(fileObj.sex); XCTAssertNotNil(fileObj.description); } 

但是,这个testing永远不会运行我知道我犯了一些错误在这里我失去了一些东西,但无法弄清楚在这种情况下谁能帮助我

Xcode将只运行具有以“test”开头的方法签名的testing,而且方法签名也可以没有参数。 如果将方法名称更改为,则testing将运行

 - (void)testModelObject { } 

但是这意味着你将不再拥有你的file 。 您应该在方法或setup方法中初始化它,如下所示:

 @interface ModelUnitTest : XCTestCase @property (nonatomic, strong) id file; @end @implementation ModelUnitTest - (void)setUp { [super setUp]; self.file = //setup your file } - (void)tearDown { // tear down your file if necessary [super tearDown]; } - (void)testModelObject { XCTAssertNotNil(self.file); XCTAssertTrue(self.file isKindOfClass:[Media class]]); Media * fileObj = (Media *)self.file; XCTAssertNotNil(fileObj.name); XCTAssertNotNil(fileObj.sex); XCTAssertNotNil(fileObj.description); }