Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c StatsertTrue没有像我预期的那样工作_Objective C_Ios_Xcode_Unit Testing - Fatal编程技术网

Objective c StatsertTrue没有像我预期的那样工作

Objective c StatsertTrue没有像我预期的那样工作,objective-c,ios,xcode,unit-testing,Objective C,Ios,Xcode,Unit Testing,我在单元测试中有这两行代码。 如果我注释掉statsertTrue测试,则数据写入文件时不会出现任何问题,写入文件时为YES BOOL writeResult = [winePDF writeToFile:wineDocumentDirectoryFilename atomically:YES]; STAssertTrue((writeResult), @"Didn't write to file"); 我希望这次考试能通过,但失败了。我试过了 STAssertEquals(YES, writ

我在单元测试中有这两行代码。 如果我注释掉
statsertTrue
测试,则数据写入文件时不会出现任何问题,写入文件时为
YES

BOOL writeResult = [winePDF writeToFile:wineDocumentDirectoryFilename atomically:YES];
STAssertTrue((writeResult), @"Didn't write to file");
我希望这次考试能通过,但失败了。我试过了

STAssertEquals(YES, writeResult, @"Didn't write to file"); 
这也失败了


在单元测试方面做得不多,所以在期待您的信息灵通的回答时,我打了个耳光。

您的代码在我看来是正确的。你确定写作成功了吗?你确定winePDF是非nill吗

我建议在第一行之前添加以下内容:

STAssertNotNil(winePDF, @"winePDF should not be nil");

为了获得更好的调试选项,可以使用以下代码:

if( ! writeResult) {
    STFail(@"Didn't write to file");
}

因此,您将确定您的测试代码没有工作,或者您的代码有问题。

是的,我已经检查过了。如果我在没有断言的情况下写入文件,则会创建该文件。似乎是检查行为导致了问题?此测试是在函数返回后运行的,因此,如果断言不起作用,您仍然应该看到该文件。您是否尝试记录返回值?您可能希望在单元测试之前和/或之后添加一些内容来删除文件,以防成功运行后留下一个文件。这里只有三个变量(writeResult、winePDF、wineDocumentDirectoryFilename),因此只需记录这三个变量就可以找出问题所在。是的,确切地冒着冒犯他的风险,这是一个基本调试可以解决的问题。但不是我们的。请尝试按如下方式更改写入文件的代码:
BOOL writeResult=[winePDF writeToFile:wineDocumentDirectoryFilename原子性:否];statsertTrue((writeResult),@“未写入文件”)