Codeception / Codeception/module-db
Support for IN operator in Db Module
- 主要言語
- PHP
- スター
- 23
- フォーク
- 31
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
#### What are you trying to achieve?
I wanted to check that `$I->dontSeeInDatabase` from a list of values. Instead of writing
```php
$I->dontSeeInDatabase('someTable', ['foo' => 'cond1']);
$I->dontSeeInDatabase('someTable', ['foo' => 'cond2']);
$I->dontSeeInDatabase('someTable', ['foo' => 'cond3']);
```
I ended up writing
```php
$I->dontSeeInDatabase('someTable', [
'foo' => ['cond1', 'cond2', 'cond3']
]);
```
hoping that it would generate the following query `SELECT count(*) FROM someTable WHERE foo IN ('cond1', 'cond2', 'cond3')` and assert that the result must be 0. However I ended up getting an exception, saying array-to-string conversion - obviously enough since this is not supported.
Do you think this is something good to have, or just bad test design on my part?
* Codeception version: 2.3.3
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
Db モジュールのエントリポイント $I->dontSeeInDatabase から始め、配列条件がクエリに変換される流れを追ってください。報告された配列値のケースを再現し、要求された IN 動作のサポートを追加してから、結果のアサーションが一致する行を存在しないものとして扱うことを確認してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php
- 領域
- database, testing
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 38/100