-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
「自分の担当」タブのバッチに表示される件数が0件の場合はバッチを表示しないように実装 #3624
「自分の担当」タブのバッチに表示される件数が0件の場合はバッチを表示しないように実装 #3624
Conversation
762491b
to
9a327d0
Compare
@haruguchi-yuma Issue の対応により落ちるようになったテストについても追加で対応しています。テストの対応についての説明量が多くなり、レビューに時間がかかるかもしれません。 もし不明点がありましたらお気軽に質問してください。よろしくお願いします🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AudioStakes
確認しました。PRがとても詳しく書かれていて、テスト変更の経緯など分かりやすかったです😄
確かに変更前はテストしたいこととアサーションがずれている気がするので、今回の変更で問題ないと思います!OKです👍
@haruguchi-yuma @komagata |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認しました、OKですー🙆♂️
「Issue の対応により落ちるようになったテストとその対応」の作業分のポイントについて、2021/12/01(水)15時~ のミーティングで machida さんに質問した結果、「新たに Issue を立ててそこで見積もる」と回答いただいたのでその Issue を新たに立てました。 新たに立てた Issueミーティングで質問したこと落ちるようになったテストはもともと期待どおりに動いておらず、その対応作業は #3594 の見積もり対象の作業分とは別枠になると思うため、その分のポイントを加算するなどの調整をしてもらうことは可能なのだろうか?また可能な場合、どのようにそのポイントを見積もるのだろうか? 回答してもらったこと今回の対応分はバグ修正にあたるので、ポイントを加算することになる。 |
ステージングでこの機能の動作確認をしようとした結果、他のバグの影響で動作確認を完了できなかった。 先ほどステージングで動作確認をしていて、僕が実装した機能に関連するバグを見つけました。バグの詳細は #3638 に記載しています。 このバグがある状態では僕が実装した機能をうまく動作確認できなさそうなので、このバグを修正するまでリリースを待った方が良いかもしれないと考えています。リリースを待った方が良いかどうか、何か対応した方が良さそうなことがあるか、などについてアドバイスをいただけますでしょうか? なお、開発時にこのバグに気づかなかった理由は、このバグにはキャッシュが関わっており、開発環境でキャッシュが有効にされていない状態で実装を進めていたためです。 |
Ref: #3594
やったこと
画面の変更内容
※画像の右側の赤枠部分
変更前
変更後
※ 1件以上の場合は今まで通り表示
Issue の対応により落ちるようになったテストとその対応
Ref: #3649
調べた結果もともとテストが期待どおりに動いていなかったので、期待どおりに動くようにテストを修正した(逆に言うと、もともと期待どおりに動いていれば、この Issue の対応によってテストが落ちることはなかった)
落ちるようになったテスト
テストA
bootcamp/test/system/products_test.rb
Lines 297 to 316 in de2e6a8
テストB
bootcamp/test/system/products_test.rb
Lines 318 to 338 in de2e6a8
対応したこと
対応1: テストコードで自分の担当件数として「返信済みも含めたすべての担当件数」を取得するようにした
修正対象
テストAとテストBの両方
※ どちらのテストも、落ちるようになった原因は同じ
エラーメッセージ
テストA
テストB
落ちるようになった原因
テストコードにおいて担当件数が0件の時に「自分の担当」タブのバッチから担当件数が取得されており、今回の Issue の対応によりバッチが表示されなくなったことで、バッチが見つからないエラーが生じるようになったため
調査してわかったこと
テストが追加された Issue 担当者がいない提出物にメンターがコメントすると自動で担当者になる #2460 を調べてみると、テストコードで「本来取得したいはずの件数」と「実際に取得している件数」が異なっているということがわかった
対応したこと
自分の担当件数として「返信済みも含めたすべての担当件数」を取得するようにした。具体的には、「自分の担当」タブのテキストから件数を取得するようにした。
対応した結果
対応2: テストAで本来確認したいことを確認できるようにするため、 38f2828 をリバートした
修正対象
テストAのみ
エラーメッセージ(対応1の修正後)
失敗するようになった原因
テストAのアサーションでは「担当者のいない提出物にコメントしても担当件数が変わらないこと」を確認しているけれど、対応1の修正によりコメントすると担当件数が1件増えるようになったため
疑問に感じたこと
テストAで確認したいことは「コメントすると担当になる(件数が1件増える)こと」のはずなのに、なぜ「コメントしても担当にならない(件数が変わらない)こと」が確認されているのか?
調査してわかったこと
38f2828 でテストAのアサーションが変更されていた
アサーションがどのように変更されたか
「コメントしても担当件数が変わらないこと」を確認するように変更された
なぜアサーションが修正されたか
PR 担当提出物に未返信の絞り込み機能を実装 #3241 の実装過程において、テストAが失敗するようになったため
テストAが失敗するようになった実装
「自分の担当」タブのバッチに表示する件数を未返信のみに絞るようにした実装
起きたこと
担当者のいない提出物にコメントすると、その提出物は「自分の担当」かつ「返信済み」となるため、バッチに表示される件数(未返信の件数)が増えなくなった → そのためテストAが失敗するようになった
考えたこと
テストAで確認したいことは「コメントすると担当になること」なので、 38f2828 で「コメントしても担当にならないこと」を確認するようにアサーションを変えたことは、修正として不適切だったのではないのではないだろうか?
どのように修正すると適切だったか
テストAで確認したいことを考慮すると、アサーションは変更せずに、対応1のような修正をした方が適切だったように思います
対応したこと
テストAのアサーションで「コメントすると担当件数が1件増えること」を確認できるようにするため、 38f2828 をリバートした
対応した結果
テストAが成功するようになった