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

passedInDataつまり、データをCalculatorAddTestに渡すにはどうすればよいですか?

私は init: をオーバーライドしようとしましたが、それは呼び出されませんでした (XCTestCase の指定された初期化子が何であるか、ヘッダーには手がかりがありません)。

ありがとう!

シュタイナーX

4

1 に答える 1