0

私はXcodeでUIテストを作成しており、データ駆動型テストを使用したいと考えています。これはXcodeの新しいUI Testing Framework XCUIを使ってどのように実現できますか?テストケースは、次の形式になります。Xcodeでデータ駆動テストを実行する方法

class StepUnitFormatterTests: XCTestCase { 
//> (0, "0 steps") 
//> (1, "1 step") 
//> (2, "2 steps") 
//> (999, "999 steps") 
//> (1000, "1,000 steps") 
//> (1000000, "1,000,000 steps") 
//> (3.3, "3 steps") 
//> (-5, "0 steps") 
func testFormat(_ numberOfSteps: Double, _ expected: String) { 
    XCTAssertEqual(StepUnitFormatter().format(numberOfSteps), expected) 
    } 
} 

答えて

0

UITestsは、あなたのケースのためのテストの右のタイプではありません。通常は、UITestsを使用して、ユーザーのアプリとのやりとりをシミュレートします。たとえば、ボタンを押すと次の画面に移動することをテストすることができます。 UnitTestを(とUITests)のクラスにテスト関数はパラメータを許可していないので、

あなたのテスト機能が動作しません。

は、あなたの StepUnitFormatterが正しく動作している場合は、通常、 unittestのを記述しテストします。関数は次のようになりますあなたの特別な場合には

func testStepUnitFormatter() { 
    let formatter = StepUnitFormatter() 
    XCTAssertEqual(formatter.format(0), "0 steps") 
    XCTAssertEqual(formatter.format(1), "1 step") 
    XCTAssertEqual(formatter.format(2), "2 steps") 
    XCTAssertEqual(formatter.format(1000), "1,000 steps") 
    XCTAssertEqual(formatter.format(3.3), "3 steps") 
    // etc. 
} 

しかし、再び、このコードは、unittestのクラスの一部です。 UITestで同じことをするには、実際にアプリケーションを実行し、ユーザーインターフェイスを使ってテストするさまざまな値をすべて入力することによってフォーマッタをテストする必要があります。だからこそUITestsの代わりにUnitTestsを使うべきです。

関連する問題