■短い回答
プライベートをテストしたい場合は設計に問題があるので、パブリックに変更してテストしましょう
■これに対する(変な人の)驚いた反論
プライベートを一時的にパブリックにして、テストが終わったら
プライベートに戻すなんてやるわけないだろw
↑誰もそんなコトしろなんて言ってない
■テスト専門家による回答
t-wadaのブログ
https://t-wada.hatenablog.jp/entry/should-we-test-private-methods
短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。
プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
プライベートなメソッドのテストに関しては、4つの考え方があります。
・パブリックメソッド経由でテストする
・別クラスのパブリックメソッドとする
・テスト対象の可視性を(やや)上げる
・プライベートのまま、リフレクションでアクセスしてテストを書く
パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。
別クラスのパブリックメソッドとする
プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを示唆している場合があります。
テストがどうしても書きたい場合は、その責務はテスト対象のプライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。
探検
カプセル化■プライベートメソッドをテストする方法
■ このスレッドは過去ログ倉庫に格納されています
2020/07/05(日) 20:47:46.60ID:M+BkbwUs
122デフォルトの名無しさん
2020/07/07(火) 15:27:50.82ID:YBf2Aagc C2カバレッジだった
123デフォルトの名無しさん
2020/07/07(火) 15:39:26.39ID:K/dtFkkl >>87
一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない
例えばgrowableなring bufferでqueueを実装するとして
バッファを拡大させるロジックに独自の最適化をいろいろと施してるような場合、
各種分岐に応じたメモリコピーの方法だったり、それに応じたメモリの初期化状態の確認だったり
privateなhead/tailポインタへのアクセスだったり、
public経由だけでは確認できないテストをしたほうがいい場合がある
一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない
例えばgrowableなring bufferでqueueを実装するとして
バッファを拡大させるロジックに独自の最適化をいろいろと施してるような場合、
各種分岐に応じたメモリコピーの方法だったり、それに応じたメモリの初期化状態の確認だったり
privateなhead/tailポインタへのアクセスだったり、
public経由だけでは確認できないテストをしたほうがいい場合がある
124デフォルトの名無しさん
2020/07/07(火) 15:42:28.40ID:YBf2Aagc >>123
訂正
一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない
もしpublic経由のテストで不十分な場合、それはメソッドの責務が大きいと考えられる
リファクタリングして複数のクラスに分離するのが正しい対応
そうすれば自然publicメソッドとなりテストが可能になる
訂正
一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない
もしpublic経由のテストで不十分な場合、それはメソッドの責務が大きいと考えられる
リファクタリングして複数のクラスに分離するのが正しい対応
そうすれば自然publicメソッドとなりテストが可能になる
125デフォルトの名無しさん
2020/07/07(火) 15:53:43.14ID:zTLocdwC キミも和田メソッドの被害者なんだよ。
可哀そうに。
和田さん本人だとしても、被害者であることに変わりはないんだよ。
可哀そうに。
和田さん本人だとしても、被害者であることに変わりはないんだよ。
126デフォルトの名無しさん
2020/07/07(火) 15:59:04.01ID:pnFsfYkB あれ、説き伏せるんじゃないの?
127デフォルトの名無しさん
2020/07/07(火) 16:00:23.93ID:zTLocdwC もう和田さんは改心してこっちの味方だから。
128デフォルトの名無しさん
2020/07/07(火) 16:09:18.16ID:bdixmHft ごちゃごちゃうるさい
privateメソッドのテストやれよ
キチガイ
privateメソッドのテストやれよ
キチガイ
129デフォルトの名無しさん
2020/07/07(火) 16:11:54.35ID:cp13iBTj 虚言癖まであるのかな
130デフォルトの名無しさん
2020/07/07(火) 16:15:15.28ID:zTLocdwC 和田メソッド被害者の会、会員募集中。
和田さんも入会して良いんだヨ。
和田さんも入会して良いんだヨ。
131デフォルトの名無しさん
2020/07/07(火) 17:39:48.25ID:O+C/kGAG132デフォルトの名無しさん
2020/07/07(火) 17:43:14.92ID:jam8vymb 可視性狂信者ってのはどうしようもないね。テストさえ犠牲にし始める。
13394
2020/07/07(火) 17:55:40.01ID:k9dX6gDH >>95
今さらだけど、前スレのタイトル(今より酷い)から察せると思うが、あなたの想像を越えるお馬鹿さんがいるから、常識を持つあなたはここから逃げた方がいいよと、お前どっちの味方だよ風に言いたかった。
今さらだけど、前スレのタイトル(今より酷い)から察せると思うが、あなたの想像を越えるお馬鹿さんがいるから、常識を持つあなたはここから逃げた方がいいよと、お前どっちの味方だよ風に言いたかった。
134デフォルトの名無しさん
2020/07/07(火) 18:13:36.60ID:k9dX6gDH って、何でもないです。
(アンカが自分に向いていたと勘違いしてたとか言えねぇ)
(アンカが自分に向いていたと勘違いしてたとか言えねぇ)
135デフォルトの名無しさん
2020/07/07(火) 18:55:11.35ID:B0OaeN7n >>130
むしろ、こんな気違いに絡まれる和田さんカワイソ
むしろ、こんな気違いに絡まれる和田さんカワイソ
136デフォルトの名無しさん
2020/07/07(火) 19:10:49.50ID:BPFgnJg7 結局実際に絡む度胸もないから無害やけどなw
137デフォルトの名無しさん
2020/07/07(火) 19:21:49.86ID:zm6NAQZG138デフォルトの名無しさん
2020/07/07(火) 19:26:55.85ID:bdixmHft >>137
は?いいからprivateメソッドのテストやれよ
は?いいからprivateメソッドのテストやれよ
139デフォルトの名無しさん
2020/07/07(火) 19:27:35.46ID:zm6NAQZG オブジェクト指向を理解している人間の言うprivateをテストせよ/テストするべきではない と、 オブジェクト指向を理解していない人間のprivateをテストせよ/テストするべきでない は論争のレベルが全然違う。
大学生同士の論争と小学生同士の喧嘩くらい違う。
お前はどっちだ?>>138
大学生同士の論争と小学生同士の喧嘩くらい違う。
お前はどっちだ?>>138
140デフォルトの名無しさん
2020/07/07(火) 19:28:44.77ID:bdixmHft141デフォルトの名無しさん
2020/07/07(火) 19:32:38.84ID:bdixmHft ここで話を整理するけど
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
142デフォルトの名無しさん
2020/07/07(火) 19:33:11.12ID:zm6NAQZG 具体例もなく、privateのテストやれと言われてもできねーよ、バーカ。
143デフォルトの名無しさん
2020/07/07(火) 19:35:50.42ID:bdixmHft うんうん
わかってない人もいるみたいだからもう一度ここで仕切り直しさせてほしい
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
わかったかな?
わかってない人もいるみたいだからもう一度ここで仕切り直しさせてほしい
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
わかったかな?
144デフォルトの名無しさん
2020/07/07(火) 19:36:30.14ID:OvditBd9145デフォルトの名無しさん
2020/07/07(火) 19:37:40.45ID:rZMsiuSb 頭皮に触れるものは全て検査する
彡ミ
↓↓↓
彡 ⌒ ミ
(´・ω・`) 使ってるシャンプー、肌に合ってるかい?
彡ミ
↓↓↓
彡 ⌒ ミ
(´・ω・`) 使ってるシャンプー、肌に合ってるかい?
146デフォルトの名無しさん
2020/07/07(火) 19:44:10.79ID:rZMsiuSb [ケハエール]
彡 ⌒ ミ
(´・ω・`) 確認もせず使うのは馬鹿だ
彡 ⌒ ミ
(´・ω・`) 確認もせず使うのは馬鹿だ
147デフォルトの名無しさん
2020/07/07(火) 22:01:24.32ID:YBf2Aagc148デフォルトの名無しさん
2020/07/07(火) 22:08:08.37ID:O+C/kGAG >>3の下痢便コード書いた人ですよね?
149デフォルトの名無しさん
2020/07/07(火) 22:11:43.28ID:bdixmHft >>147
それテストできてねーからw
publicから t=0のときだけprivateの処理が欲しかったとするじゃん?
そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから
そのpublicからしかテストしないんじゃt≠0のときのテストできねーじゃん
やんねーのかよ?
ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったらt=0しかテストやってなかったら
普通は怒り狂うもんだよ
っていうか絶対ブッ殺す
それテストできてねーからw
publicから t=0のときだけprivateの処理が欲しかったとするじゃん?
そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから
そのpublicからしかテストしないんじゃt≠0のときのテストできねーじゃん
やんねーのかよ?
ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったらt=0しかテストやってなかったら
普通は怒り狂うもんだよ
っていうか絶対ブッ殺す
150デフォルトの名無しさん
2020/07/07(火) 22:27:58.06ID:YBf2Aagc >>149
> そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから
つまり、publicがt=0のときprivateメソッドを呼ぶんですよね?
publicがt=0のテストをすれば、privateのテストしてるじゃないですかw
> そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから
つまり、publicがt=0のときprivateメソッドを呼ぶんですよね?
publicがt=0のテストをすれば、privateのテストしてるじゃないですかw
151デフォルトの名無しさん
2020/07/07(火) 22:30:06.58ID:YBf2Aagc > ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったら
> t=0しかテストやってなかったら
仕様が変わったのならt=3のときのテストを追加しましょう
> t=0しかテストやってなかったら
仕様が変わったのならt=3のときのテストを追加しましょう
152デフォルトの名無しさん
2020/07/07(火) 22:34:14.99ID:YBf2Aagc >>149はホント意味不明だな
最初の仕様・・・t=0のときしかprivateメソッドの処理をしない
t=3のときは?→「privateメソッドの処理をしない」場合の結果が正しい
改修・・・t=3のときにprivateメソッドの処理をすることになった
「privateメソッドの処理をした」場合の結果が以前と異なるという仕様になった
では新しい仕様のテストを書きましょう
これだけなんだがなぁ
前と正しい答えが違うのに、テストを修正しないの?
最初の仕様・・・t=0のときしかprivateメソッドの処理をしない
t=3のときは?→「privateメソッドの処理をしない」場合の結果が正しい
改修・・・t=3のときにprivateメソッドの処理をすることになった
「privateメソッドの処理をした」場合の結果が以前と異なるという仕様になった
では新しい仕様のテストを書きましょう
これだけなんだがなぁ
前と正しい答えが違うのに、テストを修正しないの?
153デフォルトの名無しさん
2020/07/07(火) 22:49:42.87ID:bdixmHft154デフォルトの名無しさん
2020/07/07(火) 22:52:36.96ID:bdixmHft 設計書かコメントに
このメソッドはt=0のときしかテストしていません!
って書いてあるの?
お前のソースって
悪いけど見たことねーや
滅茶苦茶バカだしもういいかな?
レスしなくて
このメソッドはt=0のときしかテストしていません!
って書いてあるの?
お前のソースって
悪いけど見たことねーや
滅茶苦茶バカだしもういいかな?
レスしなくて
155デフォルトの名無しさん
2020/07/07(火) 22:54:46.63ID:YBf2Aagc >>153
だから変わったpublicメソッドをテストしろよ
変わってないならprivateメソッドに何の問題もないだろ
それとも何か?お前すべての取りうる値でテストしろと言ってんのか?
この関数は数値を二倍してくれる関数である。
今まで4を入れてこの関数を呼び出していた。
今度5を入れるようになったから5を入れた場合はどうなるかテストする必要がある
今度は6を、7を、8を・・・って新しい引数で呼び出すために
そのテストが必要なんか?ああん?
だから変わったpublicメソッドをテストしろよ
変わってないならprivateメソッドに何の問題もないだろ
それとも何か?お前すべての取りうる値でテストしろと言ってんのか?
この関数は数値を二倍してくれる関数である。
今まで4を入れてこの関数を呼び出していた。
今度5を入れるようになったから5を入れた場合はどうなるかテストする必要がある
今度は6を、7を、8を・・・って新しい引数で呼び出すために
そのテストが必要なんか?ああん?
156デフォルトの名無しさん
2020/07/07(火) 22:56:07.20ID:YBf2Aagc157デフォルトの名無しさん
2020/07/07(火) 23:00:58.28ID:bdixmHft は?最小-1、最小、中間、最大、最大+1通すだろフツー
158デフォルトの名無しさん
2020/07/07(火) 23:02:33.64ID:bdixmHft だが、お前のやり方ではどうやっても通すことはできないんだよ
こんな簡単なテストすら不可能
早く死ねよ
これがお前の限界なんだよ
こんな簡単なテストすら不可能
早く死ねよ
これがお前の限界なんだよ
159デフォルトの名無しさん
2020/07/07(火) 23:06:04.37ID:bdixmHft っていうかここまで自分の間違いを認めない意味はなんかあるの?
これぜってー仕事でお前の主張が通る現場ねーぞガチで
メソッドにt=0のときしかテストしてませんって書いてあるもの納品するか?
ナメてんじゃねーよ
これぜってー仕事でお前の主張が通る現場ねーぞガチで
メソッドにt=0のときしかテストしてませんって書いてあるもの納品するか?
ナメてんじゃねーよ
160デフォルトの名無しさん
2020/07/07(火) 23:36:58.56ID:YBf2Aagc >>157
> は?最小-1、最小、中間、最大、最大+1通すだろフツー
・t=3のどこが、最小-1、最小、中間、最大、最大+1なんだよw
「今回」新しく仕様が変わって、t=3 などというものが登場したんだろ
なら「今回」テストを追加するだけの話だろ
それとも何か? t=3がいままでprivateを呼ばなかったのに
t=3のテストをお前はするんか?どういった理由で?
> は?最小-1、最小、中間、最大、最大+1通すだろフツー
・t=3のどこが、最小-1、最小、中間、最大、最大+1なんだよw
「今回」新しく仕様が変わって、t=3 などというものが登場したんだろ
なら「今回」テストを追加するだけの話だろ
それとも何か? t=3がいままでprivateを呼ばなかったのに
t=3のテストをお前はするんか?どういった理由で?
161デフォルトの名無しさん
2020/07/07(火) 23:47:24.20ID:zm6NAQZG162デフォルトの名無しさん
2020/07/07(火) 23:56:35.16ID:D1qF8R0D bdixmHftはQueueという言葉とオブジェクト指向という言葉が理解できずに発狂した説
163デフォルトの名無しさん
2020/07/08(水) 00:21:47.63ID:SznGehK7 詳細に関する知識が無ければ検査できないなら、公開メンバを介して検査するのと、非公開メンバを直接検査するのは同じことですよ。
これが理解できないなら、もはや議論の意味が無いでしょう。
そもそも自身が推奨する和田メソッドさえ理解できていないって事ですから。
これが理解できないなら、もはや議論の意味が無いでしょう。
そもそも自身が推奨する和田メソッドさえ理解できていないって事ですから。
164デフォルトの名無しさん
2020/07/08(水) 00:28:23.66ID:SznGehK7 アンクルボブの理論に対する賛否両論から議論を始めるべきなのかもしれない。
165デフォルトの名無しさん
2020/07/08(水) 00:29:51.46ID:kqVG+rMe166デフォルトの名無しさん
2020/07/08(水) 00:35:35.13ID:SznGehK7 和田さんはアンクルボブを理論のベースにしています。
和田理論否定派はアンクルボブ理論を理解したうえで和田理論に異議を述べています。
和田理論信仰者は、そもそもアンクルボブって何?状態です。
だから議論が成り立っていないのです。
和田理論否定派はアンクルボブ理論を理解したうえで和田理論に異議を述べています。
和田理論信仰者は、そもそもアンクルボブって何?状態です。
だから議論が成り立っていないのです。
167デフォルトの名無しさん
2020/07/08(水) 00:42:30.98ID:UPP9MPHB (和田メソッドって何だ?)
168デフォルトの名無しさん
2020/07/08(水) 00:52:01.29ID:SznGehK7 詳細に関する知識を持ってはならないというのが和田理論の根幹です。
private、publicという字面にこだわるのは単なる信仰心にすぎません。
神を信じますか?ハイ信じます。
神を見ましたか?ハイ見ました。
こういうことです。
private、publicという字面にこだわるのは単なる信仰心にすぎません。
神を信じますか?ハイ信じます。
神を見ましたか?ハイ見ました。
こういうことです。
169デフォルトの名無しさん
2020/07/08(水) 00:56:34.00ID:SznGehK7 和田理論を素直に受け入れられるのは、プログラミングとはAPIを呼び出すことであり、決してアルゴリズムを実装することではないからですよ。
つまり、システム利用者がシステム作者に対して小言を言うような状態です。
詳細を検査したら駄目じゃないか!詳細は呼び出せればいいんだよ!
つまり、システム利用者がシステム作者に対して小言を言うような状態です。
詳細を検査したら駄目じゃないか!詳細は呼び出せればいいんだよ!
170デフォルトの名無しさん
2020/07/08(水) 01:27:45.49ID:/rdq0ZOx >>167
「アンチ和田」がかってに命名したもの(笑)
「アンチ和田」がかってに命名したもの(笑)
171デフォルトの名無しさん
2020/07/08(水) 01:28:51.37ID:/rdq0ZOx 「和田理論」も同じな。「アンチ和田」はなにか理由があって
命名しているんだろう。常識的なことを名前をつけることで
特別な方法だと錯覚させる手かな?
命名しているんだろう。常識的なことを名前をつけることで
特別な方法だと錯覚させる手かな?
172デフォルトの名無しさん
2020/07/08(水) 04:10:02.60ID:6ZEX1zcL >>166
ロバート・C ・マーチンのこと?
ロバート・C ・マーチンのこと?
173デフォルトの名無しさん
2020/07/08(水) 04:11:04.99ID:6ZEX1zcL >>169
なるほどな
なるほどな
174デフォルトの名無しさん
2020/07/08(水) 06:13:27.58ID:AplvQTCJ175デフォルトの名無しさん
2020/07/08(水) 08:26:03.95ID:6ZEX1zcL >>174
違いません、困りません
違いません、困りません
176デフォルトの名無しさん
2020/07/08(水) 08:29:40.77ID:6ZEX1zcL アンクルボブをロバートと読み替えても通じますし
僕が納得したところでお前は何も困りません
僕が納得したところでお前は何も困りません
177デフォルトの名無しさん
2020/07/08(水) 08:35:30.95ID:6ZEX1zcL178デフォルトの名無しさん
2020/07/08(水) 09:02:50.79ID:SznGehK7 >>172
ハイそうです。
ハイそうです。
179デフォルトの名無しさん
2020/07/08(水) 12:16:39.34ID:hmU+YLWt 関数が取りうる値で全てでテストしろと言ってるアホがいるスレはここですか?
今回78という値で関数を呼び出すことになった
78という値を与えた時、ちゃんと動くかテストしているかね?
だってさ(笑)
今回78という値で関数を呼び出すことになった
78という値を与えた時、ちゃんと動くかテストしているかね?
だってさ(笑)
180デフォルトの名無しさん
2020/07/08(水) 12:42:10.97ID:PWwZYnOX privateメソッドのテストを具体的にどうやるのか未だに分からん。
そもそも、public経由のメソッド呼び出しで網羅できない巨大privateメソッドの正しい動作なんて定義できるの?
そもそも、public経由のメソッド呼び出しで網羅できない巨大privateメソッドの正しい動作なんて定義できるの?
181デフォルトの名無しさん
2020/07/08(水) 12:54:49.19ID:ODFOiaSP 巨大なメソッド自体が悪じゃね
あとテストってinoutを確認するんじゃないの?
outいっぱいしてたらもうそれ完全害悪じゃね
あとテストってinoutを確認するんじゃないの?
outいっぱいしてたらもうそれ完全害悪じゃね
182デフォルトの名無しさん
2020/07/08(水) 14:27:45.18ID:ZL+NZ9CQ ステートメントの入力により無限通りの構文木が出力されるパーサ?
なんだそれ?
なんだそれ?
183デフォルトの名無しさん
2020/07/08(水) 17:57:24.33ID:pS2ORJtj >>179
最小、最大、中間値ぐらいしか言ってないのにそうやって曲解しないと負けちゃいそうなの?
最小、最大、中間値ぐらいしか言ってないのにそうやって曲解しないと負けちゃいそうなの?
184デフォルトの名無しさん
2020/07/08(水) 18:33:36.38ID:IWyzFdDn そもそも、privateメソッドを定義すること事態、滅多にないよ。
というか、自分のソース見たら無かった。
というか、自分のソース見たら無かった。
185デフォルトの名無しさん
2020/07/08(水) 18:42:33.47ID:IWyzFdDn このスレの過去の発言を見ると誤解を招きそうだから補足するけど、別に内部処理をpublicにしたからprivateは無いという意味じゃないからね?
元からpublicメソッドとprivate変数しかない。
元からpublicメソッドとprivate変数しかない。
186デフォルトの名無しさん
2020/07/08(水) 20:52:09.28ID:Sbr5rKl2187デフォルトの名無しさん
2020/07/08(水) 20:55:55.79ID:hmU+YLWt >>183
↓って書いてますが? 3と78でなにか違いがあるんですか?
> ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったら
> t=0しかテストやってなかったら
↓って書いてますが? 3と78でなにか違いがあるんですか?
> ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったら
> t=0しかテストやってなかったら
188デフォルトの名無しさん
2020/07/08(水) 20:59:13.73ID:hmU+YLWt >>186
そういうこと。巨大なメソッドがあったらそれを
一つのメソッドと、そこから使われるユーティリティメソッドに分割する
ユーティリティメソッドはできる限り汎用的なインターフェスにする(たとえ一箇所でしか使われていなくても)
ユーティリティメソッドはそれ単体でテストする
そうすれば巨大なメソッドのコード量が減る
そういうこと。巨大なメソッドがあったらそれを
一つのメソッドと、そこから使われるユーティリティメソッドに分割する
ユーティリティメソッドはできる限り汎用的なインターフェスにする(たとえ一箇所でしか使われていなくても)
ユーティリティメソッドはそれ単体でテストする
そうすれば巨大なメソッドのコード量が減る
189デフォルトの名無しさん
2020/07/08(水) 21:15:04.90ID:s5mehW61190デフォルトの名無しさん
2020/07/08(水) 21:19:38.42ID:hmU+YLWt >>189
あのさぁ、ごまかしてないでちゃんと書こうよ?
最小、最大、中間値のテストやってれば
最小、最大、中間値ではない3のテストなんて不要なんだよって
ちゃんといわないと、あのバカには伝わらないよ?
あのさぁ、ごまかしてないでちゃんと書こうよ?
最小、最大、中間値のテストやってれば
最小、最大、中間値ではない3のテストなんて不要なんだよって
ちゃんといわないと、あのバカには伝わらないよ?
191デフォルトの名無しさん
2020/07/08(水) 23:59:05.09ID:hEQaHqpN 最小、最大、中間値って聞いたことがないけど
どこかの分野で一般的に使われてるもの?
境界値分析なら
境界値と境界値の内側と外側の3値か
境界値と境界値の外側の2値かどっちかが一般的だと思う
どこかの分野で一般的に使われてるもの?
境界値分析なら
境界値と境界値の内側と外側の3値か
境界値と境界値の外側の2値かどっちかが一般的だと思う
192デフォルトの名無しさん
2020/07/09(木) 00:14:35.43ID:qGUjUa51 >>191
3と78がそれに当たると申すか?
3と78がそれに当たると申すか?
193デフォルトの名無しさん
2020/07/09(木) 00:16:52.90ID:tq6y70T3 俺もそう思ってたけど、そもそもスレタイともずれてきてるよねっていう
194デフォルトの名無しさん
2020/07/09(木) 00:21:36.93ID:Ai/0yITE 3と78の伏線が
今、回収されたのか?
今、回収されたのか?
195デフォルトの名無しさん
2020/07/10(金) 12:24:37.85ID:sSLzYC6I 詳細を知ってはならないということは、詳細の知識、つまり境界を知ってはならないということ。
「彼らはオブジェクト指向を全く知らない可哀そうな人ではないか?Javaを学ぶべきだ!」などと言う前に、原典に当たろう。
「彼らはオブジェクト指向を全く知らない可哀そうな人ではないか?Javaを学ぶべきだ!」などと言う前に、原典に当たろう。
196デフォルトの名無しさん
2020/07/10(金) 12:25:53.05ID:A+QDXq04 >>195
オブジェクト指向と関係ない話なら、関係ないって書いとけよ
オブジェクト指向と関係ない話なら、関係ないって書いとけよ
197デフォルトの名無しさん
2020/07/10(金) 12:54:55.71ID:1UxRpBTq zTLocdwC以外、Javaなんて誰も言ってないけど?何が言いたいんだ?
スレタイはカプセル化って書いてあるしOOPは理解している前提でしょ?
まぁ、明らかにOOPを理解していない人が発狂していたけど。
スレタイはカプセル化って書いてあるしOOPは理解している前提でしょ?
まぁ、明らかにOOPを理解していない人が発狂していたけど。
198デフォルトの名無しさん
2020/07/10(金) 14:04:44.56ID:sSLzYC6I いや、おそらくわかっていないだろう。
199デフォルトの名無しさん
2020/07/10(金) 14:09:26.25ID:sSLzYC6I オブジェクト指向のすばらしさを語っている人が、一番オブジェクト指向を知らない。
ゆえに議論が成り立たないという状態ではないだろか。
ゆえに議論が成り立たないという状態ではないだろか。
200デフォルトの名無しさん
2020/07/10(金) 14:12:09.99ID:sSLzYC6I201デフォルトの名無しさん
2020/07/10(金) 15:02:20.85ID:zQa5K81u202デフォルトの名無しさん
2020/07/10(金) 15:16:19.83ID:TbXdOMZ+ ポエってるやつがいるな
203デフォルトの名無しさん
2020/07/10(金) 16:07:13.59ID:sSLzYC6I 和田メソッドを称賛してる人たちに決まってるだろ。
204デフォルトの名無しさん
2020/07/10(金) 16:35:36.39ID:zQa5K81u 和田メソッドって何?
205デフォルトの名無しさん
2020/07/10(金) 17:14:49.72ID:sSLzYC6I >>1 に書いてあるだろ。
206デフォルトの名無しさん
2020/07/10(金) 17:42:15.92ID:A+QDXq04 >>1に書いてあるのはただの常識で
和田メソッドなんて特別な名前じゃないよ
和田メソッドなんて特別な名前じゃないよ
207デフォルトの名無しさん
2020/07/10(金) 20:12:23.39ID:FovnwiSG 常識を疑え、それって和田メソッドじゃないかって
208デフォルトの名無しさん
2020/07/10(金) 20:49:58.98ID:zQa5K81u 常識じゃん。むしろ、常識を疑うその心を疑え。それって経験不足では?
まぁ、強いて言うのなら、リフレクションを用いてテストは、許してはならない反則行為だと思うがな。
特に、カバレッジテストとかする場合は。
まぁ、強いて言うのなら、リフレクションを用いてテストは、許してはならない反則行為だと思うがな。
特に、カバレッジテストとかする場合は。
209デフォルトの名無しさん
2020/07/10(金) 21:00:54.86ID:zQa5K81u ただ、記事を書いた和田さん?も、記事を読むとその危険性を理解しているみたいだから対立する気はないよ。
黒魔術と言ってるし。
なんで黒魔術なんでしょうねぇ(すっとぼけ)
黒魔術と言ってるし。
なんで黒魔術なんでしょうねぇ(すっとぼけ)
210デフォルトの名無しさん
2020/07/10(金) 21:09:49.17ID:HmvrAlYz そりゃC++への嫉妬だろ
C++はそう呼ばれるのに、Javaは何故かそうは呼ばれない、それは何故か?
Javaに欠けているものとは一体……?!
C++はそう呼ばれるのに、Javaは何故かそうは呼ばれない、それは何故か?
Javaに欠けているものとは一体……?!
211デフォルトの名無しさん
2020/07/10(金) 21:30:17.43ID:LiH0PaR7 黒魔術って言われ方を誉め言葉だと思ってる馬鹿ってほんとにいるんだな。。
212デフォルトの名無しさん
2020/07/10(金) 21:36:39.85ID:pLXOeUja オブジェクトが隠蔽・カプセル化するものだからといってホワイトボックステストまで否定しちゃうのは変な話。
213デフォルトの名無しさん
2020/07/10(金) 21:51:04.37ID:zQa5K81u ホワイトボックステストを否定する気はないけど...例えば
>>88のコードを借りるけど
> queue = Queue()
> queue.push(17)
> asserEqual( queue.length, 1)
> a = queue.pop()
> assertEqual( a, 17)
> assertEqual( quele.length, 0)
こんなノリでprivateだったメソッドをpublicにしたり、リフレクションを使って呼び出すとする。
queue.内部実装()
...で、これでカバレッジテストに合格しちゃったらどうするの?
Queueというクラスはテストに合格したと見なすの?
テストってテスト項目に合否判定を出す作業だと思うのだが、内部実装の呼び出しで合否判定を変えるなんてチートは駄目だと思う。
そもそも、privateメソッドを定義するケース自体、珍しいから、経験則に基づかない発言でもあるが...。
>>88のコードを借りるけど
> queue = Queue()
> queue.push(17)
> asserEqual( queue.length, 1)
> a = queue.pop()
> assertEqual( a, 17)
> assertEqual( quele.length, 0)
こんなノリでprivateだったメソッドをpublicにしたり、リフレクションを使って呼び出すとする。
queue.内部実装()
...で、これでカバレッジテストに合格しちゃったらどうするの?
Queueというクラスはテストに合格したと見なすの?
テストってテスト項目に合否判定を出す作業だと思うのだが、内部実装の呼び出しで合否判定を変えるなんてチートは駄目だと思う。
そもそも、privateメソッドを定義するケース自体、珍しいから、経験則に基づかない発言でもあるが...。
214デフォルトの名無しさん
2020/07/10(金) 21:56:59.04ID:FovnwiSG 和田メソッドは非常識
215デフォルトの名無しさん
2020/07/10(金) 22:02:19.60ID:FovnwiSG 和田さんはQueueを実装したことない素人
216デフォルトの名無しさん
2020/07/10(金) 22:04:28.86ID:zQa5K81u あー...うん、俺の言い方が悪かったかも。
privateメソッドをテストするというレアケースだから許してくれ。
常識が無い以上、もっと正確に細かく伝えるべきだったな。
ただ、俺の主張(リフレクションは反則
行為)の弱い点を言うと、OOPやDDDの概念を無視した設計には、こちらの主張は当てはまらない。
そう思うと、和田さんのリフレクションをギリギリ許容(?)するような記事の書き方も否定はできん。
なんだかんだで、彼の記事は自分が記事を書くよりは無難にまとめられているとは思う。
まぁ、記事を書いたことないけど。
privateメソッドをテストするというレアケースだから許してくれ。
常識が無い以上、もっと正確に細かく伝えるべきだったな。
ただ、俺の主張(リフレクションは反則
行為)の弱い点を言うと、OOPやDDDの概念を無視した設計には、こちらの主張は当てはまらない。
そう思うと、和田さんのリフレクションをギリギリ許容(?)するような記事の書き方も否定はできん。
なんだかんだで、彼の記事は自分が記事を書くよりは無難にまとめられているとは思う。
まぁ、記事を書いたことないけど。
217デフォルトの名無しさん
2020/07/10(金) 22:09:19.05ID:pPoV7F8C ユーザーが直接public methodを使うわけじゃなければ
public methodだって実装の詳細
integration test経由で
必要なpublic methodはテストできるんだから
個別にすべてのpublic methodをテストする必要なんてない
というのと似たようなもの
それでいい場合もあればそうじゃない場合もあるというだけ
public methodだって実装の詳細
integration test経由で
必要なpublic methodはテストできるんだから
個別にすべてのpublic methodをテストする必要なんてない
というのと似たようなもの
それでいい場合もあればそうじゃない場合もあるというだけ
218デフォルトの名無しさん
2020/07/10(金) 22:23:15.71ID:FovnwiSG まあね、処理の複雑さによるのだろうね
hello world程度ならテストさえ必要ないだろうし
hello world程度ならテストさえ必要ないだろうし
219デフォルトの名無しさん
2020/07/10(金) 22:31:36.66ID:pLXOeUja220デフォルトの名無しさん
2020/07/10(金) 22:38:32.51ID:d7aQvYi7 そこで、テスト駆動開発ですよ。
最初にテストケースを定義してそれをパスする
コードを書けばpublicだのprivateだの議論は不要
だれかこの開発方法やってる?
最初にテストケースを定義してそれをパスする
コードを書けばpublicだのprivateだの議論は不要
だれかこの開発方法やってる?
221デフォルトの名無しさん
2020/07/10(金) 22:54:55.64ID:FovnwiSG >>220
privateだとテストケース書けないじゃん
privateだとテストケース書けないじゃん
222デフォルトの名無しさん
2020/07/10(金) 23:26:01.49ID:zQa5K81u■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】日本代表MF 中村敬斗 ボリビア戦のスーパーゴールに「惚れるわ」「痺れる程のゴールこれでご飯何杯いけるのよ」 [阿弥陀ヶ峰★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
- 自閉症が「んなっしょい」と連呼するお🏡
- 日本人の海外旅行したきのマナーよくなったのはいつから
- へそグリグリ
- 結婚しないやつは異性は嫌いなの?
