我是目标c的学习者,并且开始进行单元测试,
我想在对象下进行单元测试
@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
我的考试班
#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);
}
但是,这个测试永远不会运行 我知道我在这里犯了一些错误我错过了一些东西,但无法弄明白在这种情况下任何人都可以帮助我
答案 0 :(得分:1)
Xcode只会运行具有以&#39; test&#39;开头的方法签名的测试。你有,但方法签名也没有参数。如果将方法名称更改为
,则将运行测试- (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);
}