mock-keyword-in-code¶
カテゴリ: モックデータ
重大度: Info(文字列内) / Warning(識別子内)
トリガー: pyscn check --select mockdata
検出内容¶
一般的なプレースホルダーキーワードを含む識別子および文字列リテラルを検出します: mock, fake, dummy, test, sample, example, placeholder, stub, fixture, temp, foo, bar, baz, lorem, ipsum。
なぜ問題なのか¶
これらの単語は、まだ何かを検討中のときに入力するものです。ノートブック、テストファイル、5分間のスパイクでは問題ありませんが、本番コードに残ってしまった場合は、通常スタブが置き換えられなかったことを意味します。チェックインされたモジュール内の foo という名前は、作者が出荷しようとしたものではほぼありません。
識別子内の一致は、束縛された名前(foo = get_user())が動作を変えるため、警告として扱われます。文字列リテラル内の一致は、残された "fake_user" が壊れているというよりは見た目の問題であることが多いため、情報レベルですが、リリース前にレビューする価値はあります。
例¶
修正例¶
プレースホルダーを削除します。実際のデータを使用するか、設定から読み取るか、スタブをテストフィクスチャに移動して適切な場所に配置します。
オプション¶
| オプション | デフォルト | 説明 |
|---|---|---|
mock_data.enabled |
false |
オプトイン。カテゴリ全体がデフォルトで無効です。 |
mock_data.keywords |
(組み込みリスト) | このルールのキーワードリストを上書きします。 |
mock_data.min_severity |
"info" |
"warning" にすると識別子の一致のみを保持します。 |
mock_data.ignore_tests |
true |
テストと思われるファイルをスキップします。 |
mock_data.ignore_patterns |
[] |
ファイルパスに対してマッチする正規表現パターン。一致した場合は抑制されます。 |
参照¶
- 実装:
internal/analyzer/mock_data_detector.go。 - ルールカタログ · mock-domain-in-string · test-credential-in-code · placeholder-comment