0

我有同一个计算器的多个版本(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

即如何将我的数据传递到passedInDataCalculatorAddTest 中?

我尝试覆盖 init:,但这甚至没有被调用(不知道 XCTestCase 的指定初始化程序是什么,并且标题没有提供任何线索)。

谢谢!

施泰纳X

4

1 回答 1

0

运行多个的可测试实体XCTestCasesXCTestSuite. 我的建议是尝试编写一个自定义XCTestSuite来迭代您的数据并在套件中创建多个测试用例。

于 2016-04-02T15:59:33.663 回答