PHPackages                             cloudpack/rorschach - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. cloudpack/rorschach

AbandonedArchivedLibrary[Testing &amp; Quality](/categories/testing)

cloudpack/rorschach
===================

WebAPI Test Library

1.0.12(8y ago)12565[3 issues](https://github.com/cloudpack/Rorschach/issues)MITPHPPHP &gt;=5.5

Since Sep 13Pushed 8y ago16 watchersCompare

[ Source](https://github.com/cloudpack/Rorschach)[ Packagist](https://packagist.org/packages/cloudpack/rorschach)[ RSS](/packages/cloudpack-rorschach/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (6)Versions (15)Used By (0)

Rorschach
=========

[](#rorschach)

Rorschachとは
-----------

[](#rorschachとは)

- Yamlファイルを基準にWebAPIのテストを行うツール
- 以下の意味合いを込めてある
    - [アメコミの登場人物](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A9%E3%83%83%E3%83%81%E3%83%A1%E3%83%B3#.E3.82.AF.E3.83.A9.E3.82.A4.E3.83.A0.E3.83.90.E3.82.B9.E3.82.BF.E3.83.BC.E3.82.BA)の絶対に妥協しない性格
    - [性格診断](https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%B7%E3%83%A3%E3%83%83%E3%83%8F%E3%83%BB%E3%83%86%E3%82%B9%E3%83%88)

Install
-------

[](#install)

```
composer require --dev cloudpack/rorschach
```

Usage
-----

[](#usage)

### Basic

[](#basic)

```
./vendor/bin/rorschach inspect
```

### Options

[](#options)

#### saikou

[](#saikou)

普通にテストした場合、 `finished.` という味気ないメッセージが流れます。 少しでもあなたとの距離を縮める為に最高のオプションを用意いたしました。 `--saikou` か `-s` をつけて是非お試しください。

#### bind

[](#bind)

Yaml内に、 `{{ }}` ブラケットで囲んだ変数を記述することで、外部から値を注入することができる。

注入する方法は２つ

1. `--bind` を使ってJSONにて指定する。(複数指定可能)

```
--bind='{"env": "prod"}'
```

```
--bind='{"env": "prod"}' --bind='{"api-token": "YOURTOKEN"}'
```

2. pre-requestsのbinding構文を使う

```
bind:
  api-token: response.data.param
```

上記のようにすることで、以下のレスポンスの `SOME PARAMETER` が `api-token` としてbindされる

```
{
  "response": {
    "data": {
      "param": "SOME PARAMETER"
    }
  }
}
```

#### file

[](#file)

デフォルトでは、プロジェクトディレクトリの `test*.yml` すべてを対象とする。 特定ファイル指定をしたい場合はコマンドライン引数で指定することが可能。

```
--file='test/test-api.yml'
```

### plugin機能ついて

[](#plugin機能ついて)

- pre-requestで実行したAPIのレスポンスをフックして任意のコードを実行し、レスポンスを返すようにできる
- venderディレクトリやtestsディレクトリと同階層に `plugins` という名前でディレクトリを作成し、その中にphpファイルを設置する
    - 実行時にpluginsディレクトリ内のphpファイルを読み込む為、関数を定義しyamlでは `after-function` というキーを設定することでフックすることができる
    - 呼び出された関数は Response Object を引数に受け取るので、それを元に関数を作成
    - e.g.

```
$ tree .
.
├── README.md
├── composer.json
├── composer.lock
├── plugins
│   └── test_function.php
├── tests
│   ├── test-beta.yml
....

$ cat plugins/test_function.php
