記事へのコメント69

    • 注目コメント
    • 新着コメント
    オーナーコメントを固定しています
    t-wada
    オーナー t-wada QA@ITのサービス終了と共に読めなくなっていたプライベートメソッドのテストに関する議論を、関係する皆様に許可をいただいた上でライセンス CC BY で公開しました

    2020/04/09 リンク

    その他
    youko03
    “プライベートなメソッドや関数をテストする必要は無いと考えています。プライベートなメソッドは、実装の詳細であるからです。”

    その他
    winterfall
    "ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。"

    その他
    okumuraa1
    ]

    その他
    nilab
    「プライベートなメソッドや関数をテストする必要は無い」「プライベートなメソッドは、実装の詳細であるから」「パブリックメソッド経由でプライベートメソッドのテスト」「別クラスのパブリックメソッドとする」

    その他
    juve534
    privateメソッドにテストを書くことがあるので、それはなにか間違っているんだろうとは思っていた

    その他
    Windymelt
    ホワイトボックステストが書きたくなったらそれは設計改善の余地がある症候,ってことかな。実装改善の邪魔になるって書いてあるし。

    その他
    nekorails
    何度も読んでる

    その他
    tasshi820
    なるほど

    その他
    digo
    たまに書きたい時あるのよね。例えばクラス内に閉じた正規表現とか。

    その他
    diveintounlimit
    ブラックボックステストはそれでええかも知れんけどねぇ。プライベートもややこしいロジックのメソッドはテスト書いとるよ。パブリックメソッドのテストが死んだらどこで問題起きてるか追いかけるの大変だし。

    その他
    iR3
    なるほど

    その他
    vanbraam
    だいたい納得; 結局テストは契約の一種. 請負契約なら,アウトプットだけが問題で,それをどうやって成し遂げるかは契約の対象外. そこを縛りたくなるのは権限の委譲 or 責務の分解のどちらかが不十分

    その他
    Error401
    プライベートメソッド内のコードがテスト対象なのは明らか。なので「プライベートメソッドを呼び出すテストを書くか書かないか」という問題設定にするのが正しいと思う。

    その他
    deep_one
    プライベートなら「モジュール内のテスト」で終わりだろ?/テストを書きたくなるならそれはプライベート指定になってるのがおかしい、は分かる。

    その他
    tuto0621
    “短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。”

    その他
    GlassGrass
    純粋関数を低レイヤで実装するようなケースだと、保守じゃなく初期開発での正当性担保のためにプライベートでもバシバシテスト書いてる。リファクタリングでテストごと破棄するのもままある

    その他
    kmaebashi
    単体テストがホワイトボックステストだとするなら、publicかprivateかでテストの有無が変わるのは明らかにおかしいだろ。ややこしいロジックはprivateに隠蔽すべきだが、そこがテストできないなんて。

    その他
    naopr
    経験上、プライベートメソッドのテストをパブリックメソッドのテストで記述するとテストの意図がわかりにくくなってしまう場合が多いのでプライベートメソッドのテストとして書いてる

    その他
    RYoMa_0923
    ?なんかこのもと記事が書かれた時にはマトモに存在してたか怪しい言語を持ち出してわーわー言うとるのがいるな。

    その他
    kagerou_ts
    だいたいリフレクション

    その他
    shimarisugi
    shimarisugi オブジェクト指向設計ガイドだと結論は「private methodは作るな」「作ってもテストはするな」「ただしテストすることに意味がある場合は除く」だったな。3つ目は設計ミスだがfixできないときの最終手段。概ね記事の通り

    2020/04/09 リンク

    その他
    masatomo-m
    バグった時に人が死んだりしないシステムで、という前提なら同意

    その他
    ksugimori
    テストコードもクライアントコードのひとつなので疎結合であるべき、と思ってるので書かない派。

    その他
    THAL
    あとで読む

    その他
    rryu
    元の質問はテストドリブンでやっているとプラベートメソッドを実装する時にテストが書きたくなるがどうすればという感じなので回答がちょっと違うような気もする。

    その他
    jaguarsan
    書捨ててコミットしない派

    その他
    kazkaz03
    基本的に書かなくて良いと思うけど、「仕方ないけど書かなきゃいけない」ケースがあると言っとかないと、原理主義おじさんが暴れだす

    その他
    ngmy
    privateメソッドのテストを書きたくなる時ってたいてい責務の配置をミスっていて、設計を見直すと別のクラスのpublicメソッドに落ち着くことが多いよな。と思って読んだら書いてあった。

    その他
    baronhorse
    小さいクラスでやるならこうだよね。複雑すぎるものは外に出したほうがいい

    その他
    aprifield
    “ンの一つとして「リファクタリングの支えになる」ことが挙げられますが、リファクタリングとは簡単に言うと「外部から見た振る舞いを変えずに内部の実装をきれいにすること」です。外部から見た振る舞いは、多くの

    その他

    注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

    アプリのスクリーンショット
    いまの話題をアプリでチェック!
    • バナー広告なし
    • ミュート機能あり
    • ダークモード搭載
    アプリをダウンロード

    関連記事

    プライベートメソッドのテストは書かないもの? - t-wadaのブログ

    この文章の背景 この文章はプライベートメソッドのテストを書くべきか否かに関する knsmr さんのご質問...

    ブックマークしたユーザー

    • accelerk2025/06/24 accelerk
    • otaota02062025/03/29 otaota0206
    • J1382025/02/28 J138
    • Naughty10292025/01/24 Naughty1029
    • rydot2024/09/17 rydot
    • enokawaa2024/08/11 enokawaa
    • toracoya2024/03/25 toracoya
    • jagagaj2024/03/11 jagagaj
    • okinaka2024/01/17 okinaka
    • tech-kazuhisa2024/01/15 tech-kazuhisa
    • tk41682023/08/27 tk4168
    • kakku222023/07/20 kakku22
    • techtech05212023/05/13 techtech0521
    • SYM_simu2023/02/07 SYM_simu
    • katsukiniwa2022/12/23 katsukiniwa
    • hono3bono32022/11/23 hono3bono3
    • ING402022/11/19 ING40
    • t2y-19792022/11/04 t2y-1979
    すべてのユーザーの
    詳細を表示します

    同じサイトの新着

    同じサイトの新着をもっと読む

    いま人気の記事

    いま人気の記事をもっと読む

    いま人気の記事 - テクノロジー

    いま人気の記事 - テクノロジーをもっと読む

    新着記事 - テクノロジー

    新着記事 - テクノロジーをもっと読む

    同時期にブックマークされた記事

    いま人気の記事 - 企業メディア

    企業メディアをもっと読む