菜鸟教程小白 发表于 2022-12-12 22:18:03

带有核心数据/MagicalRecord 意外行为的 iOS 单元测试


                                            <p><p>我得到了以下测试代码。</p>

<pre><code>@interface SubscriberTest : XCTestCase

@end

@implementation SubscriberTest

- (void)setUp
{
    ;
    ];
    ;

}


- (void)tearDown
{
    ;
    ;
}

- (void)testParseSubscriberWithEvents
{
   NSEntityDescription *pDesc = [NSEntityDescription entityForName:@&#34;Subscriber&#34;
                                       inManagedObjectContext:];
   XCTAssertNotNil(pDesc);


- (void)testParseSubscriberWithReviews
{
   NSEntityDescription *pDesc = [NSEntityDescription entityForName:@&#34;Subscriber&#34;
                                       inManagedObjectContext:];
    XCTAssertNotNil(pDesc);

}
</code></pre>

<p>@结束</p>

<p>我不明白为什么第一次测试总是成功而第二次总是失败..
就像每个测试都在创建自己的 <code>ManagedObjectContext</code>,但第二个不知道我的实体...
实际上这段代码是用来测试json数据的导入的。我调试了MagicalRecord的代码,发现问题出在方法上</p>

<pre><code>
</code></pre>

<p>在第二个测试中返回 nil...</p>

<p>我试图评论第一个测试,第二个测试成功了!但是如果他们是两个测试,那么第二个每次都失败...... </p>

<p>关于我正在使用 <code>MagicalRecord</code> 2.3.0.beta 的信息(因为 2.2 importFromObject 方法中的一些错误......)
任何帮助和解释将不胜感激!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>看起来在第一次测试之后 -tearDown 破坏了 CoreData 堆栈,由于某种原因,下次调用 -setUp 时 MagicalRecord 没有正确初始化核心数据堆栈(您发现第二次上下文为零),导致您的第二次测试失败.我发现如果你设置核心数据堆栈一次(你可以通过在 -setUp 中调用 dispatch_once 来实现)并在 -tearDown 中调用 它确实有效。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于带有核心数据/MagicalRecord 意外行为的 iOS 单元测试,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23759485/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23759485/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: 带有核心数据/MagicalRecord 意外行为的 iOS 单元测试