Skip to content
This repository has been archived by the owner on Jan 5, 2019. It is now read-only.

Latest commit

 

History

History
101 lines (72 loc) · 2.32 KB

ConfiguringQuick.md

File metadata and controls

101 lines (72 loc) · 2.32 KB

Quickの挙動をカスタマイズしましょう

QuickConfiguration を継承したクラスを作成し、QuickConfiguration.Type.configure() をオーバーライドすることで Quick の挙動をカスタマイズすることができます。

// Swift

import Quick

class ProjectDataTestConfiguration: QuickConfiguration {
  override class func configure(configuration: Configuration) {
    // ...set options on the configuration object here.
  }
}
// Objective-C

@import Quick;

QuickConfigurationBegin(ProjectDataTestConfiguration)

+ (void)configure:(Configuration *configuration) {
  // ...set options on the configuration object here.
}

QuickConfigurationEnd

一つのプロジェクトで複数の configuration を持つこともできますが どの順に configuration が実行されるか保証されません。

テスト全体で使う beforeEachafterEach を追加する

QuickConfiguration.beforeEachQuickConfiguration.afterEach を使うと テストスイート内の各テストの実行前・実行後に走らせる処理を記述することができます。

// Swift

import Quick
import Sea

class FinConfiguration: QuickConfiguration {
  override class func configure(configuration: Configuration) {
    configuration.beforeEach {
      Dorsal.sharedFin().height = 0
    }
  }
}
// Objective-C

@import Quick;
#import "Dorsal.h"

QuickConfigurationBegin(FinConfiguration)

+ (void)configure:(Configuration *)configuration {
  [configuration beforeEach:^{
    [Dorsal sharedFin].height = 0;
  }];
}

QuickConfigurationEnd

さらに現在実行中のテストに関するメタデータを取得することもできます。

// Swift

import Quick

class SeaConfiguration: QuickConfiguration {
  override class func configure(configuration: Configuration) {
    configuration.beforeEach { exampleMetadata in
      // ...use the example metadata object to access the current example name, and more.
    }
  }
}
// Objective-C

@import Quick;

QuickConfigurationBegin(SeaConfiguration)

+ (void)configure:(Configuration *)configuration {
  [configuration beforeEachWithMetadata:^(ExampleMetadata *data) {
    // ...use the example metadata object to access the current example name, and more.
  }];
}

QuickConfigurationEnd