gpt4 book ai didi

objective-c - 如何在 Objective-C Xcode 包中的每个单元测试之前实现 setup() 和 teardown()?

转载 作者:行者123 更新时间:2023-12-04 05:48:41 24 4
gpt4 key购买 nike

我是 Objective-C 的新手,我正在尝试立即开始使用 TestDrivenDevelopment,因为我发现它确实很有保证,至少当测试确实通过时。

在此之前,我用 Java 编写了一些教程,对 TDD 有了一些了解。 Brett Schucherts Video-Tutorials他一步一步编写完整的 RPNCalculator 是一个金矿,可以通过观察他的行动来学习这些东西。

例如,为了减少代码重复,你可以做这样一件好事:

@Before
public void init() {
/* Stuff that which will be set up before the call of each test method/*
}

然后在您在 Java 中的 TestClass 中进行的每个测试之前调用它。

这是我想在 Objective-C + Xcode 中实现的。我应该提一下,我使用的是 Xcode 4.3(最新版本)并且我使用的是内置的 TestFramework。

我在网上找到的唯一接近我要找的东西是 this answer on SO .

不幸的是,我无法重现所描述的做事方式。一个最小的可运行示例和/或更详细的新人解释将是非常棒的,非常感谢!

顺便说一句,抱歉英语不好。还在学习语言。 :-)

编辑:

这是一个不起作用的最小示例。也许有人可以告诉我出了什么问题。 Xcode 似乎无法识别 board里面的测试方法。
#import <SenTestingKit/SenTestingKit.h>
@interface ABoardShould : SenTestCase
@end

#import "ABoardShould.h"
@implementation ABoardShould

- (void)setUp
{
[super setUp];

int rowCount = 6;
int columnCount = 7;
Board *board = [[Board alloc] initWithShapeRowCount:rowCount andColumnCount:columnCount];
}

- (void)tearDown
{
// Tear-down code here.

[super tearDown];
}

- (void)testHaveItsShapeSetWhenInitialised {
STAssertEquals([board rowCount], rowCount, @"");
STAssertEquals([board columnCount], columnCount, @"");
}

- (void)testHaveTheDimensionsOfItsBoardMatchTheGivenShape {
NSMutableArray *expectedFields = [[NSMutableArray alloc] initWithCapacity:columnCount*rowCount];
for(int i=0; i < (rowCount*columnCount); i++) [expectedFields addObject: [NSNumber numberWithInt: 0]];

STAssertEquals([expectedFields count], [[board fields] count], @"");
}

最佳答案

您的测试用例类的设置和拆卸方法必须调用 setUptearDown .这在 Xcode Unit Testing Guide: Writing Test Case Methods 中有描述.

在您的示例中,boardsetUp 中的局部变量方法。您需要将其设为实例变量。

关于objective-c - 如何在 Objective-C Xcode 包中的每个单元测试之前实现 setup() 和 teardown()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com