Skip to content
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

IBAction の名称を、操作を意味するものに変えると良いかもしれません。 #75

Open
yumemi-kumagai opened this issue Apr 30, 2024 · 0 comments

Comments

@yumemi-kumagai
Copy link
Contributor

現在は、たとえば「Close」ボタンが押されたときに、@IBAction func dismiss(_:) を呼び出すようになっています。これだと閉じる操作で行うことと強く結びすぎていて、閉じる際に追加の処理が必要になったとき、名前と反する実装になる可能性があります。

@IBAction では「Close ボタンが押された」ことを意味する名称にすると「閉じる処理」であることが明確になり、その中で必要な処理(今回なら dismiss を呼び出す)をすると読みやすいコードになりそうです。

同じようにして、天気予報の更新も UI 操作に紐づいた名称のメソッドを @IBAction で呼び出すことで、同様の効果が得られそうです。特にここは既存のテストコードで顕著で、現在は loadWeather というその名前から、天気予報を取得するテストでこの @IBAction が直接呼び出されています。

ただ、テストとしては「更新ボタンが押されたこと」をテストしたい場面ではないはずで、将来的に意図しない副作用が含まれる可能性も生みそうです。また、テストコードで Sender を渡すことが求められ、無意味な値を渡さざるを得ないところも気になります。ここをボタン操作と更新操作で明確に分けることで、テストコードでもそういった懸念材料を払拭できそうです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant