【发布时间】:2016-04-02 15:13:21
【问题描述】:
我有同一个计算器的多个版本(IOS、JavaScript、Android),它们必须在每个平台上产生相同的结果。
我开发了一组测试数据,分布在多个数据集中,例如:
onedigit.json:
{n1: 1, n2: 2, a: 3},
{n1: 4, n2: 5, a: 9}...
twodigit.json
{n1: 32, n2: 11, a: 43},
{n1: 42, n2: 0, a: 42}
...等等。
我有一个简单的 XCTestCase,例如:
@interface CalculatorAddTest: XCTestCase
@property NSNumber n1;
@property NSNumber n2;
@property NSNumber a;
@end
@implementation CalculatorAddTest
- (void) setUp{
self.n1 = passedInData.n1;
self.n2 = passedInData.n2;
self.a = passedInData.a;
}
- testAdd{
XCAssert( Calculator.add(self.n1, self.n2) == self.a );
}
- (void) tearDown{
...
}
所以,问题是,我该怎么做:
for dataSet in dataSets:
for d in dataSet:
run CalculatorAddTest with d
即如何将我的数据传递到 CalculatorAddTest 中的passedInData?
我尝试覆盖 init:,但它甚至没有被调用(不知道 XCTestCase 的指定初始化程序是什么,并且标题没有提供任何线索)。
谢谢!
ssteinerX
【问题讨论】:
-
我不是在问如何进行迭代,只是在问如何将我的数据放入 setUp 以便它可以用作测试用例中每个测试的源数据。