Codeception / Codeception/module-db

Support for IN operator in Db Module

オープン
#17 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。