Ios 这个单元测试我做错了什么?

Ios 这个单元测试我做错了什么?,ios,unit-testing,Ios,Unit Testing,我正在尝试在iOS应用程序上测试我的重置按钮。基本上,在重置方法中,它重置所有文本字段。因此,我通过分配record.salesamount.text一个数字字符串,然后执行resetEverything来测试它。但是,在NSLog中,我得到了前后日志的(null)。我做错了什么 - (void)testResetEverything { RecordViewController *record = [[RecordViewController alloc]init]; record.Sales

我正在尝试在iOS应用程序上测试我的重置按钮。基本上,在重置方法中,它重置所有文本字段。因此,我通过分配record.salesamount.text一个数字字符串,然后执行resetEverything来测试它。但是,在NSLog中,我得到了前后日志的(null)。我做错了什么

- (void)testResetEverything
{
RecordViewController *record = [[RecordViewController alloc]init];
record.SalesAmounttext.text = @"1234567890123456";
NSLog(@"before %@",record.SalesAmounttext.text);
[record resetEverything];
NSLog(@"after %@",record.SalesAmounttext.text);
XCTAssertEqualObjects(record.SalesAmounttext.text, nil, "Should be a nil");
}

使用前初始化
记录.SalesAmounttext

- (void)testResetEverything
{
RecordViewController *record = [[RecordViewController alloc]init];
record.SalesAmounttext = [[UITextField alloc] init]; //Write this line before use record.SalesAmounttext
record.SalesAmounttext.text = @"1234567890123456";
NSLog(@"before %@",record.SalesAmounttext.text);
[record resetEverything];
NSLog(@"after %@",record.SalesAmounttext.text);
XCTAssertEqualObjects(record.SalesAmounttext.text, nil, "Should be a nil");
}

您的
记录.SalesAmounttext
如果是outlet,则会自动初始化。但在文本情况下,您需要自己初始化它,因为您不是从storyboard/xib加载它

我认为
SalesAmounttext
是一个IBOutlet。如果是这样的话,就不会了work@MidhunMP你说得对。那么,我如何在不改变IBOutlet的情况下测试它呢?有两个选项,我不知道它是否有效:1)调用
[record view]紧跟在
RecordViewController*记录=[[RecordViewController alloc]init]之后2)手动调用
loadView
方法