1

アセンブリの構成にいくつかのキーの正しい値があることを確認するために、単体テストを作成したいと考えています。

アセンブリは、次のように構成を宣言します。

- (id)config
{
    return [TyphoonDefinition configDefinitionWithName:@"SomeConfigFile.plist"];
}

そして、いくつかのオブジェクトのプロパティを次のように設定します:

[initializer injectParameterWith:TyphoonConfig(@"some.config.key")];

そして、アセンブリが正しいキー、つまり次のようにそうすることを確認したい(疑似コード):

assertEquals([myAssembly configValueForKey:@"some.config.key"], @"correct key value");

これを達成する方法は?

4

1 に答える 1

0

オブジェクトが Typhoon から放出された後、オブジェクトの統合テストを作成することをお勧めします。これらのテストの 1 つは、オブジェクトが必要な初期状態にあることです。

@implementation MyTestCase
{
    TyphoonBlockComponentFactory *_factory;
}

- (void)setUp
{    

    //Recommend putting this in a common place, so main test assembly only has to be set up once
    _factory = [[TyphoonBlockComponentFactory alloc] initWithAssemblies:@[
        [ApplicationAssembly assembly],
        [CoreComponents assembly],
        [PersistenceComponents assembly],
        [NetworkComponents assembly]
    ]];

    TyphoonConfigPostProcessor *postProcessor = [[TyphoonConfigPostProcessor alloc] init];
    [postProcessor useResourceWithName:@"Config.plist"];

    [factory attachPostProcessor:postProcessor];

}

//Assuming a classroom configured with a teacher count from Config.plist
- (void)test_classroom_should_initially_have_one_teacher
{
    CoreComponents *components = [factory asAssembly];
    ClassRoom *classRoom = [factory classroom]; 

    XCTAssertEquals(1, classroom.numberOfTeachers);

}


. . . ここから、コンポーネントの他の統合テストを作成できます。

統合テスト ガイド:

  • Typhoon での統合テストに関するガイドは次のとおりです。
  • TyphoonConfig の配管をテストすることもできますが、アセンブリによってビルドされるオブジェクトのテストでは、要件 (BDD) に焦点が当てられ、アセンブリのすべての側面が暗黙的にカバーされます。
于 2014-10-15T23:37:55.900 に答える