■短い回答
プライベートをテストしたい場合は設計に問題があるので、パブリックに変更してテストしましょう
■これに対する(変な人の)驚いた反論
プライベートを一時的にパブリックにして、テストが終わったら
プライベートに戻すなんてやるわけないだろw
↑誰もそんなコトしろなんて言ってない
■テスト専門家による回答
t-wadaのブログ
https://t-wada.hatenablog.jp/entry/should-we-test-private-methods
短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。
プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
プライベートなメソッドのテストに関しては、4つの考え方があります。
・パブリックメソッド経由でテストする
・別クラスのパブリックメソッドとする
・テスト対象の可視性を(やや)上げる
・プライベートのまま、リフレクションでアクセスしてテストを書く
パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。
別クラスのパブリックメソッドとする
プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを示唆している場合があります。
テストがどうしても書きたい場合は、その責務はテスト対象のプライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。
探検
カプセル化■プライベートメソッドをテストする方法
■ このスレッドは過去ログ倉庫に格納されています
2020/07/05(日) 20:47:46.60ID:M+BkbwUs
439デフォルトの名無しさん
2020/07/29(水) 13:34:14.86ID:XTBRGYt/ 用語はともかくラムダ式のことだと分かってスッキリした
440デフォルトの名無しさん
2020/07/29(水) 16:49:02.49ID:jnMYxU1A 二つ折りじゃないですか!
441デフォルトの名無しさん
2020/07/29(水) 18:21:34.93ID:TpnjQV/H 第一級函数のことかと思ったよ俺は
馬鹿は1つしかモノを知らないから適当に言っても1つの意味にしかならないが他人はお前よりモノを知ってるから第一級函数なのかラムダ式なのかそれとも自分が知らない別の概念なのか判断できないんだよ
馬鹿は1つしかモノを知らないから適当に言っても1つの意味にしかならないが他人はお前よりモノを知ってるから第一級函数なのかラムダ式なのかそれとも自分が知らない別の概念なのか判断できないんだよ
442デフォルトの名無しさん
2020/07/29(水) 18:32:59.18ID:T5TGNuPi 結局単にラムダ式のことを言おうとしてたん?
それだけのことをなぜ平置きとか言い出しちゃったのかなw
見苦しいからもうこれ以上レスいらんぞ
それだけのことをなぜ平置きとか言い出しちゃったのかなw
見苦しいからもうこれ以上レスいらんぞ
443デフォルトの名無しさん
2020/07/29(水) 18:34:25.78ID:yJ6wpcWu 平置き式のこと?
444デフォルトの名無しさん
2020/07/29(水) 18:35:43.73ID:jnMYxU1A 平置きとかメルカリ用語じゃねーのか
445デフォルトの名無しさん
2020/07/29(水) 18:40:24.30ID:yJ6wpcWu 単体で置ける関数のことを単体関数と言い、それを平置きして式化したものが平置き式
ラムダ式なんて西洋かぶれのバズワードを使わなくても説明できるのができるプログラマ
ラムダ式なんて西洋かぶれのバズワードを使わなくても説明できるのができるプログラマ
446デフォルトの名無しさん
2020/07/29(水) 18:43:48.50ID:T5TGNuPi 必死かコイツ
447デフォルトの名無しさん
2020/07/29(水) 18:59:31.61ID:zMv38iUQ みーっけた!
こうゆう関数併記するスタイルの事じゃないの?
プログラミングのお題スレ Part18
http://itest.5ch.net/mevius/test/read.cgi/tech/1594702426/124
https://github.com/katahiromz/3D
function add_line(x0, y0, z0, x1, y1, z1) {
}
function set_pos(x, y, z) {
}
function set_dir(dx, dy, dz) {
}
function walk(delta) {
}
function turn_dir(dx, dy, dz) {
}
function turn_angle(angle) {
}
function init() {
}
function koch(degree, step) {
}
function draw() {
}
function animate() {
}
こうゆう関数併記するスタイルの事じゃないの?
プログラミングのお題スレ Part18
http://itest.5ch.net/mevius/test/read.cgi/tech/1594702426/124
https://github.com/katahiromz/3D
function add_line(x0, y0, z0, x1, y1, z1) {
}
function set_pos(x, y, z) {
}
function set_dir(dx, dy, dz) {
}
function walk(delta) {
}
function turn_dir(dx, dy, dz) {
}
function turn_angle(angle) {
}
function init() {
}
function koch(degree, step) {
}
function draw() {
}
function animate() {
}
448デフォルトの名無しさん
2020/07/29(水) 19:19:06.70ID:bUZt8h4Z それは関数を単体でおいただけ
平置きとは違う
平置きとは違う
449デフォルトの名無しさん
2020/07/29(水) 20:44:56.64ID:f9ldngpW フォルダに平積みする事か?
A.class
B.class
C.class
D.class
E.class
A.class
B.class
C.class
D.class
E.class
450デフォルトの名無しさん
2020/07/29(水) 20:48:45.31ID:kq2jMqPx 本の平積みと同じ意味だよ
平にするって所を強調したいんだ
平にするって所を強調したいんだ
451デフォルトの名無しさん
2020/07/29(水) 23:30:32.60ID:eNj62kDo ポリモーフィズムって押し付けなんだよね
汎用的な機能を提供する
与える引数だけが戻り値を決めるような
純粋な関数を1つくればDRYになっていいものを、
何らかの意図を持った特化した関数を
幾つも定義しなければならない
意味がわからない。
インスタンスには極力状態を持たせない方が
圧倒的にバグが少ない
UI制御の状態ならGUI上だけで
本当に重要な状態ならDB上やセッションとかで
持つくらいで大体は事足りる
クラスのフィールドなんてほとんど使わんよ
引数と戻り値
配列 連想配列をとことん突き詰めれば
大抵の事はなんでも出来る。
これが構造化プログラミング
汎用的な機能を提供する
与える引数だけが戻り値を決めるような
純粋な関数を1つくればDRYになっていいものを、
何らかの意図を持った特化した関数を
幾つも定義しなければならない
意味がわからない。
インスタンスには極力状態を持たせない方が
圧倒的にバグが少ない
UI制御の状態ならGUI上だけで
本当に重要な状態ならDB上やセッションとかで
持つくらいで大体は事足りる
クラスのフィールドなんてほとんど使わんよ
引数と戻り値
配列 連想配列をとことん突き詰めれば
大抵の事はなんでも出来る。
これが構造化プログラミング
452デフォルトの名無しさん
2020/07/29(水) 23:41:24.99ID:JOuph4+C ttps://i.imgur.com/qRx3DMV.gif
453デフォルトの名無しさん
2020/07/30(木) 00:11:51.67ID:3OVhn9K/ >>451
それが設計意図がキチンとドキュメントにまとまっていれば
こうなったときに引数増やすしか無いかとかわかるんだけど
だいたいドキュメント書かないバカがノリで作ったようなポリモだから
頭にくるんだよね
作ったやつのおバカなドヤ顔に拳をブチ込んでその場で正座させながらドキュメント書かせたい
それが設計意図がキチンとドキュメントにまとまっていれば
こうなったときに引数増やすしか無いかとかわかるんだけど
だいたいドキュメント書かないバカがノリで作ったようなポリモだから
頭にくるんだよね
作ったやつのおバカなドヤ顔に拳をブチ込んでその場で正座させながらドキュメント書かせたい
454デフォルトの名無しさん
2020/07/30(木) 08:29:08.61ID:aMAEXQwY >>451
単純にモジュール切り分けテクニックの一つなだけだよ。
変な切り分けすればそりゃ可読性悪くなるわ。
オブジェクト指向をいつでもすべしみたいな馬鹿が誤解をひろめたのがいかんだけで有用なテクニックの一つではある。
単純にモジュール切り分けテクニックの一つなだけだよ。
変な切り分けすればそりゃ可読性悪くなるわ。
オブジェクト指向をいつでもすべしみたいな馬鹿が誤解をひろめたのがいかんだけで有用なテクニックの一つではある。
455デフォルトの名無しさん
2020/07/30(木) 10:11:39.63ID:6431nXoC ドキュメントとセットでの運用なら、
それ自体では完結してない、つまりは欠陥品ってことでしょ
ドキュメントの有無や書いた奴の頭の程度で決定したりはしない
それ自体では完結してない、つまりは欠陥品ってことでしょ
ドキュメントの有無や書いた奴の頭の程度で決定したりはしない
456デフォルトの名無しさん
2020/07/30(木) 10:58:41.66ID:P2gSGZs3 >>455
visualstudioがWordやExcelと連携してくれれば楽なのにね
visualstudioがWordやExcelと連携してくれれば楽なのにね
457デフォルトの名無しさん
2020/07/30(木) 12:33:29.09ID:6431nXoC コードそのものが「文芸的」になる必要がある
458デフォルトの名無しさん
2020/07/30(木) 13:15:44.34ID:XKQCIMIB ソリューションエクスプローラーなんて芋っポイのやめてWordの項目一覧でいいよ
そこの項目に対応したソースを記述すればいい
そこの項目に対応したソースを記述すればいい
459デフォルトの名無しさん
2020/07/30(木) 13:21:46.37ID:odFw/CMl ソリューションエクスプローラのCMakeターゲットビュー見てみろよ。
そんなこと言えなくなるだろ。
そんなこと言えなくなるだろ。
460デフォルトの名無しさん
2020/07/30(木) 13:24:30.25ID:XKQCIMIB ドキュメント主導型にして欲しい
461デフォルトの名無しさん
2020/07/30(木) 13:28:55.06ID:odFw/CMl それはちょっと違うかもしれないな。
プログラミング言語は自然言語と比較して非常に制約がきつく、それは機械が読めるほどだ。
自然言語で書くよりもプログラミング言語で書く方が誤解の余地が少ない優れた文書になるのではないか。
プログラミング言語は自然言語と比較して非常に制約がきつく、それは機械が読めるほどだ。
自然言語で書くよりもプログラミング言語で書く方が誤解の余地が少ない優れた文書になるのではないか。
462デフォルトの名無しさん
2020/07/30(木) 14:36:27.17ID:jRBN85oj data Status = Dead | Alive
you == not Alive
お前はもう死んでいる
you == not Alive
お前はもう死んでいる
463デフォルトの名無しさん
2020/07/31(金) 00:38:15.14ID:91XEAcCM464デフォルトの名無しさん
2020/07/31(金) 00:57:13.70ID:QZ7aSShZ465デフォルトの名無しさん
2020/07/31(金) 01:01:24.69ID:QZ7aSShZ466デフォルトの名無しさん
2020/07/31(金) 07:44:49.12ID:0J+iX777467デフォルトの名無しさん
2020/07/31(金) 09:46:54.45ID:UpUkpE84 プライベートメソッドのドキュメントを作るんだろ?
欠陥品じゃん
欠陥品じゃん
468デフォルトの名無しさん
2020/07/31(金) 12:50:08.54ID:0J+iX777 プライベートだろうとパブリックだろうと、構造がコードでわかりにくけりゃ作るよ。
そういう表面的なことでしか判断できないのは頭が悪い証拠だと思うよ。
そういう表面的なことでしか判断できないのは頭が悪い証拠だと思うよ。
469デフォルトの名無しさん
2020/07/31(金) 13:53:02.12ID:J/Hsbz2N 和田信者は頭が欠陥品
470デフォルトの名無しさん
2020/07/31(金) 15:26:19.59ID:+g+2reUI 要するに馬鹿にはプログラミングさせるなということだな
馬鹿が書くと変なものをprivateにしてしまって大混乱
プライベートメソッドをテストせざるを得なくなる
馬鹿が書くと変なものをprivateにしてしまって大混乱
プライベートメソッドをテストせざるを得なくなる
471デフォルトの名無しさん
2020/07/31(金) 20:54:13.68ID:UpUkpE84 普通は表面的=形式的なモンで判断するんでしょこの業界
だって形式しかねーもん
だって形式しかねーもん
472デフォルトの名無しさん
2020/08/01(土) 01:42:55.39ID:JfG80/LC 構造図みたいなのはプログラム内には書けないから
それは文章化しておくしかないから仕方がない
それは文章化しておくしかないから仕方がない
473デフォルトの名無しさん
2020/08/01(土) 13:40:53.00ID:ZqZOxFea474デフォルトの名無しさん
2020/08/03(月) 01:10:10.92ID:WN+omvah475デフォルトの名無しさん
2020/08/30(日) 15:04:18.01ID:i3Iv6gG3 >>397
>相変わらずオブジェクト指向信じて
>頑張ってるJavaプログラマさん達に
>お伺いしたいんだけどさぁ
ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
>相変わらずオブジェクト指向信じて
>頑張ってるJavaプログラマさん達に
>お伺いしたいんだけどさぁ
ならば「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
476デフォルトの名無しさん
2020/11/16(月) 10:13:57.47ID:PECNoX7v >>397
要するに君のスペックや君が手掛けてきたシステムは
オブジェクト指向を検討する程のものじゃなかったし
今後もオブジェクト指向を検討するようなシステムに
君が係ることもなんだろうということは理解できた
要するに君のスペックや君が手掛けてきたシステムは
オブジェクト指向を検討する程のものじゃなかったし
今後もオブジェクト指向を検討するようなシステムに
君が係ることもなんだろうということは理解できた
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【悲報】吉兆ささやき女将(頭が真っ白になって)高市早苗「頭が真っ白になって・・・」 [616817505]
- 【朗報】高市経済ブレーン「経済対策の執行で来春には内需が大復活。3月頃利上げ可能に」 [237216734]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
