少しのコンテキスト:今日、私は別の同僚が提供したいくつかのSQLコードを更新する必要がありました。それは非常に大きなスクリプトであるため、別個のファイルとして保存されます(その後、実行時に読み取られて実行されます)。これを行っている間に、数か月前にあった2つのバグを誤って再導入しました。
- 何らかの理由でASCIIファイルがUTF-16でエンコードされていました(同僚がファイルを電子メールで送信したため、ファイルが作成された可能性があります)。
- スクリプトには初期
SET
ステートメントがありませんでした(プロダクションでは一部のドライバーが必要ですが、ローカルでのクリーンインストールでは必要ありません)。
これを約1時間(再び)デバッグした後、これが二度と起こらないことを保証するためにいくつかの単体テストを書くことにしました(そして、将来の開発者に簡単な修正を提供するためにアサーションメッセージに修正する簡単な方法を含めます)。
しかし、このコードをプッシュしたとき、別の同僚(チームリーダーでもある)が近づいてきて、これらのことを二度とするべきではないと言った。
「これらのことは単体テストに属していません」
「ユニットテストは、コードのフローを確認するためにのみ使用してください」
このバグは将来再導入されないので、今やっていることは間違っていないと思うので、今はかなり対立していますが、この同僚は先輩として働いて、結局は何を決めるのですか?私たちは時間を費やしています。私は何をすべきか?このようにするのは間違っていますか?それは悪い習慣と考えられていますか?