对象的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); }