- 1 名前:デフォルトの名無しさん [2020/06/18(木) 23:47:36.69 ID:l/2SQUll.net]
- カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。 一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。 https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
- 610 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:18:58 ID:M3d71N9d.net]
- >>585
> publicにしないとテストできないってどんな言語? そんな話はしてない 可能不可能な話はしていない やりやすいかどうかの話をしている コストを考えなきゃいかんよ? できるけど大変っていうのは、問題を何も解決してない ちゃんと設計をせずに関数のインターフェースを定義せずに 無理やりprivateのテストをしても、private=外部から使わない=変更しても問題ないわけで それに対してテストをしていると、変更しても問題ないはずのprivateメソッドを変更したら テストが失敗するってことになるのでよくない
- 611 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:20:06 ID:M3d71N9d.net]
- >>589
お前はprivateメソッドを変更したときの 影響の大きさがわかってないよね
- 612 名前:デフォルトの名無しさん [2020/07/04(土) 11:23:05 ID:pmIasW6W.net]
- >>590
privateでテストできないならpublicに設計し直すんやって言ってたじゃん privateのままでテストするのに何も大変なことなんてない テストのためだけに設計し直すのは頭おかしい テストされてないメソッドが存在する方が問題だよ 外部から使わないから問題ないよねって感覚で勝手に修正されるわけないだろw メソッド書き換えたらテストも修正するのは当たり前
- 613 名前:デフォルトの名無しさん [2020/07/04(土) 11:24:25 ID:pmIasW6W.net]
- >>591
わかってないのはそっちの方、unit testでカバーしてなかったら 仕様通り動いてるのを確認できない
- 614 名前:デフォルトの名無しさん [2020/07/04(土) 11:26:55 ID:pmIasW6W.net]
- privateなメソッドであっても事前条件も事後条件もある
unit testでカバーしてれば壊れてないことを確認できるからリファクタリングが可能になる
- 615 名前:デフォルトの名無しさん [2020/07/04(土) 11:27:43 ID:1AXxY7r6.net]
- 大規模システムでずっと来てるけどカバレッジって初めて聞いた。調べたら
アメリカだと航空宇宙とか自動車とかでやるみたいね。 ERPで分岐ごとにやってたら多分完成まで数世紀かかるよw privateとかpublicとかは単に現場次第だよね。正式なQAメソッドではそこまで 言わないし、どうで
- 616 名前:もいいというか、臨機応変にやるとこ。 []
- [ここ壊れてます]
- 617 名前:デフォルトの名無しさん [2020/07/04(土) 11:30:38 ID:pmIasW6W.net]
- >>595
臨機応変にやるのは会社を首にならないためですよねw それは社会をどうやって生き抜いていくかサラリーマンとしての心得じゃないですか プログラマとして品質の高いプログラムを作るためにC2 100%は最低条件ですよ
- 618 名前:デフォルトの名無しさん [2020/07/04(土) 11:33:41.81 ID:1AXxY7r6.net]
- >>596
プログラマって言ったってサラリーマンと対して変わりがないくらい幅広いわけで。 大規模ビジネスシステムで分岐ごと全部テストしてたらピラミッド建設みたいな事に なりますw
- 619 名前:デフォルトの名無しさん [2020/07/04(土) 11:36:02 ID:1AXxY7r6.net]
- ちなみに臨機応変にやるとこなのは会社首とかはどうでもよくて、
ユニットテストはなに、リグレッションは、アクセプタンスはってのは QAのメソッドとして確立してるけど、JavaのPrivateがどうするかみたいなのは 完全に現場次第だから。 世界標準はないでしょ。
- 620 名前:デフォルトの名無しさん [2020/07/04(土) 11:39:33.69 ID:pmIasW6W.net]
- >>597
大規模システムってみずほとか? テストは組み合わせを考えると膨大になるのだけれども 最小単位のunit testだとそうでもなくてだからこそunit testは大事なんよ Salesforceは知ってる?クラウド型のサービスでアプリ作ったりできるんだけど カバレッジが75%以下だとデプロイできなくなってる 大規模だからビジネスシステムだからテストしなくていいはちょっと今の時代ありえない
- 621 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:39:35.50 ID:MJUVFEDB.net]
- 昔の組み込みの少ない経験だけでイキってるんやろ
- 622 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:40:52.54 ID:M3d71N9d.net]
- >>592
> privateでテストできないならpublicに設計し直すんやって言ってたじゃん > privateのままでテストするのに何も大変なことなんてない 自分で答え言ってるじゃんw privateでテストできないならpublicに設計し直すんだから privateのテストは大変じゃなくて必要ないってこと
- 623 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:41:39.32 ID:M3d71N9d.net]
- >>593
> わかってないのはそっちの方、unit testでカバーしてなかったら > 仕様通り動いてるのを確認できない ユニットテストでカバーしないなんて一言も言ってないんだが? 何に反論してるんだよ
- 624 名前:デフォルトの名無しさん [2020/07/04(土) 11:41:45.39 ID:pmIasW6W.net]
- >>598
現場次第だから現場に従うんだっていうのはそれはサラリーマンとして生き残るために そうせざるを得ないだけだよね、品質の高いプログラムを作るなら常にテストはしないといけない 世界標準がないからいんだっていうのじゃないよ
- 625 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:42:23.92 ID:M3d71N9d.net]
- >>594
> privateなメソッドであっても事前条件も事後条件もある > unit testでカバーしてれば壊れてないことを確認できるからリファクタリングが可能になる 最初からpublic経由でテストするって言ってるよね?
- 626 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:43:01.27 ID:czCytfqY.net]
- あたい知ってるよ
カバレッジテストを合格するために、privateをpublicにしてメソッドを呼び出せばいいんだよね。 あたい知ってるよ カバレッジテストを合格するために、メソッドの中に記載されている条件文全て消せばいいんだよね。 あたい知ってるよ カバレッジテストを合格するために、メソッドの中に記載されているコードを全部消せばいいんだよね。
- 627 名前:デフォルトの名無しさん [2020/07/04(土) 11:43:01.49 ID:pmIasW6W.net]
- >>601
privateのテストは必要だよ privateでテストできないからpublicにすると言ってるのは君の方 僕はprivateでテストするべきだって立場
- 628 名前:デフォルトの名無しさん [2020/07/04(土) 11:43:56.50 ID:pmIasW6W.net]
- >>602
君はprivateのテストは書かないってことだから privateのメソッドはunit testでカバーされてないよねってこと
- 629 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:44:22.90 ID:M3d71N9d.net]
- >>606
> privateのテストは必要だよ だから何度も言ってるがprivateでテストしたいと思ったら publicに変更するんだから、privateのテストはしなくてすむと言ってる お前短絡思考なんだよ。 privateはprivateのままテストしなくちゃいけないんだって思ってるだろ
- 630 名前:デフォルトの名無しさん [2020/07/04(土) 11:44:50.09 ID:pmIasW6W.net]
- >>604
それはunit testにならないよってこと privateのメソッドをテストできてないよってこと
- 631 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:45:01.10 ID:M3d71N9d.net]
- >>607
> 君はprivateのテストは書かないってことだから > privateのメソッドはunit testでカバーされてないよねってこと なんですぐ上でprivateはpublic経由でテストするって言ってるのに 理解できてないの?
- 632 名前:デフォルトの名無しさん [2020/07/04(土) 11:45:43.09 ID:pmIasW6W.net]
- >>608
テストしたいからpublicにするのが間違ってて privateのままテストするのがオブジェクト指向として正当なやり方
- 633 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:46:08.10 ID:M3d71N9d.net]
- >>609
> それはunit testにならないよってこと > privateのメソッドをテストできてないよってこと publicメソッド経由でテストしますがなにか? publicメソッド経由でテストするのが大変なものは 設計を変更すべきなんだよ
- 634 名前:デフォルトの名無しさん [2020/07/04(土) 11:46:12.42 ID:pmIasW6W.net]
- >>610
public経由でのテストはunit testではないよってこと
- 635 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:47:15.08 ID:M3d71N9d.net]
- >>611
> テストしたいからpublicにするのが間違ってて > privateのままテストするのがオブジェクト指向として正当なやり方 だからprivateのままpublicメソッド経由でテストすりゃいいじゃん(笑) 何度も言ってる。 それが難しいなら、それはコードがすでに複雑である証拠なので 複雑なものを直さないでテストすると破綻する
- 636 名前:デフォルトの名無しさん [2020/07/04(土) 11:47:24.81 ID:pmIasW6W.net]
- >>612
だからテストのためにオブジェクト変えてるのはprivateのテストを知らないだけだから 本末転倒だってこと
- 637 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:47:48.99 ID:M3d71N9d.net]
- >>613
> public経由でのテストはunit testではないよってこと その根拠は?お前のユニットテストの定義は? それはどこで勉強したこと?
- 638 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:48:47.27 ID:M3d71N9d.net]
- >>615
> だからテストのためにオブジェクト変えてるのはprivateのテストを知らないだけだから 複雑だからオブジェクトを変えてるんだよ アホなのか? privateのテストはpublicメソッド経由でやる それが難しいなら、コードが複雑だから設計を治す
- 639 名前:デフォルトの名無しさん [2020/07/04(土) 11:48:55.01 ID:1AXxY7r6.net]
- >>599
アメリカの某有名パッケージだね。 その界隈では知ってる限りunit testでカバレージを求められることは無いし GAFAあたりでも分岐ごとにやらないはず。エッジケースをどうするかとかは 聞かれるけど。 だいたいデベロッパーテストで全分岐をカバーしたところであまり意味はないし。 どのみちQAに回すわけで他人がやんなきゃ意味ない。 カバレージという概念を求められるのが少なくともアメリカでは航空宇宙や 自動車のようだし、良い悪いは別として、これが求められるようなところは OOとかカプセル化とかが大事なプロジェクトとはちょっと違うよね。 千人のデベロッパーに五百人のテスターで組み込みとかやらないでしょ。 いや知らんのでイメージだけど。
- 640 名前:デフォルトの名無しさん [2020/07/04(土) 11:49:13.09 ID:pmIasW6W.net]
- >>614
public経由したらunit testではないよってこと privateメソッドをテストすることは難しいことではないよ
- 641 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:49:55.50 ID:M3d71N9d.net]
- >>619
> public経由したらunit testではないよってこと だからその主張の根拠は何? お前のオレオレルールの話なんか 何のやくにも立たないだろ
- 642 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:50:29.94 ID:MJUVFEDB.net]
- 誰のためにユニットテストするの?w
語ってるべき論は誰かを想定しちゃってない?w
- 643 名前:デフォルトの名無しさん [2020/07/04(土) 11:50:46.08 ID:pmIasW6W.net]
- >>616
unit testは最小単位だから、世界共通の定義 publicを経由してたら内部でどんなにprivateなメソッドを呼び出しまくってても unit testになるなんて、定義はどこにもないのでpublic経由はunit testに当てはまらない
- 644 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:51:29.32 ID:MG3qPS+J.net]
- 名前をつけるとpublicだろうがprivateだろうがテストしなきゃいけない
→つまり無名にしてその場で使い捨てればテストしなくてOK!
- 645 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:51:49.54 ID:M3d71N9d.net]
- もう答えがすでに出てる話をまだづつても無意味なんだけどなw
t-wadaのブログ https://t-wada.hatenablog.jp/entry/should-we-test-private-methods#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B 私の回答 短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。 ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。 ただし、この議論にはプロダクトコードもテストコードも自分で書いていることという前提があります。プロダクトコードに手を入れられず、テストコードも無いレガシーコードに対しては、リフレクションは強力な手段です。 プライベートなメソッドのテストに関しては、4つの考え方があります。 パブリックメソッド経由でテストする 別クラスのパブリックメソッドとする テスト対象の可視性を(やや)上げる プライベートのまま、リフレクションでアクセスしてテストを書く パブリックメソッド経由でテストする 多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。
- 646 名前:デフォルトの名無しさん [2020/07/04(土) 11:52:44.14 ID:pmIasW6W.net]
- >>617
privateのテストはprivateを直接テストしないとunit testにならないよ
- 647 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:52:52.72 ID:M3d71N9d.net]
- >>622
> unit testは最小単位だから、世界共通の定義 > publicを経由してたら内部でどんなにprivateなメソッドを呼び出しまくってても > unit testになるなんて、定義はどこにもないのでpublic経由はunit testに当てはまらない それはお前の定義であって、なんの根拠もないことはわかってる
- 648 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:53:29.28 ID:M3d71N9d.net]
- >>625
> privateのテストはprivateを直接テストしないとunit testにならないよ 何度も「根拠を言わないことを繰り返す」のは 根拠がないからってことだよねw
- 649 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:53:30.11 ID:czCytfqY.net]
- >>615
<
- 650 名前:a href="../test/read.cgi/tech/1592491656/605" rel="noopener noreferrer" target="_blank" class="reply_link">>>605の皮肉と同じだよな。
テストのために、コード書き換えてどうするんだよってね。 [] - [ここ壊れてます]
- 651 名前:デフォルトの名無しさん [2020/07/04(土) 11:53:42.19 ID:pmIasW6W.net]
- >>624
誰だよそれ、YouTuberか? 権威主義的に誰かにすがりつくような真似をするな!
- 652 名前:デフォルトの名無しさん [2020/07/04(土) 11:54:47.69 ID:pmIasW6W.net]
- >>627
根拠は示したけどね、理解する気がないだけなんじゃない?
- 653 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:54:52.11 ID:M3d71N9d.net]
- >>628
> テストのために、コード書き換えてどうするんだよってね。 お前の目的は、テストがしづらい複雑なコードを変えないことなの?(笑) それともちゃんとテストが出来るコードを開発することなの? どっちなのさ 目的を理解してるか?
- 654 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:55:05.15 ID:MJUVFEDB.net]
- 「メソッド単位のunit テストを強制されてるのです」ww
- 655 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:55:51.40 ID:M3d71N9d.net]
- >>628
> 誰だよそれ、YouTuberか? え? t-wadaさんを知らないってそれまずくね?w https://twitter.com/t_wada プログラマ。TDD 実践者。power-assert-js 作者。 『テスト駆動開発』『プログラマが知るべき97のこと』『SQLアンチパターン』を翻訳/監訳しました。 (deleted an unsolicited ad)
- 656 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:56:33.70 ID:M3d71N9d.net]
- プログラマでテスト駆動開発者の@t_wadaさんをお招きした
社内勉強会での様子をお届け!#メルカリな日々 https://mercan.mercari.com/articles/19386/
- 657 名前:デフォルトの名無しさん [2020/07/04(土) 11:56:48.02 ID:pmIasW6W.net]
- >>632
TDDとか知らないの?
- 658 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:57:31.94 ID:czCytfqY.net]
- >>631
おめーこそ、テストの目的を理解してんのか、カス。 privateが記述されているってことは、外部から呼び出したら駄目なメソッドだ。 それを外部から呼び出して単体テスト合格とかふざけんな。 テストなめてんだろ。
- 659 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:58:00.26 ID:M3d71N9d.net]
- >>635
TDDで有名な人の名前って知ってる? t-wadaのブログ https://t-wada.hatenablog.jp/entry/should-we-test-private-methods#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B https://twitter.com/t_wada プログラマ。TDD 実践者。power-assert-js 作者。 『テスト駆動開発』『プログラマが知るべき97のこと』『SQLアンチパターン』を翻訳/監訳しました。 > 私の回答 > 短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。 > > パブリックメソッド経由でテストする (deleted an unsolicited ad)
- 660 名前:デフォルトの名無しさん [2020/07/04(土) 11:58:12.80 ID:pmIasW6W.net]
- >>633
有名な人を自分は知ってるんだ、だから自分が正しいんだって論旨かの? その人のことを君は知ってるんだ、すごいねwww
- 661 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:58:45.56 ID:M3d71N9d.net]
- >>636
> おめーこそ、テストの目的を理解してんのか、カス。 > privateが記述されているってことは、外部から呼び出したら駄目なメソッドだ。 ↑それ(外部から呼び出したらだめだ!)はテストの目的じゃないよw
- 662 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:59:28.07 ID:czCytfqY.net]
- で、でたー!!!
有名人の権威に頼る詭弁! 流石、詭弁のプロッ!
- 663 名前:デフォルトの名無しさん [2020/07/04(土) 11:59:33.33 ID:pmIasW6W.net]
- >>637
知らない、誰それ、興味もない 人の名前覚えて品質の高いプログラム作れるようになるわけじゃないし そういうこと頑張ってるのってただの意識高い系じゃない?www
- 664 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 11:59:35.76 ID:M3d71N9d.net]
- >>638
> 有名な人を自分は知ってるんだ、だから自分が正しいんだって論旨かの? そこはさぁ、専門家が言っていることは正しいんだって言うべきじゃね?w 専門家以外に、誰を信じればいいのか知らんが
- 665 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:00:04.79 ID:M3d71N9d.net]
- >>641
つまりそういうこと。お前は「テスト技術」に興味がない
- 666 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:01:48 ID:M3d71N9d.net]
- なぜ日本でTDDの専門家といって一番目に出てくるような人を知らないで
テストの話について語っているのか? 勉強したら必ず何度も目にする名前だろうに
- 667 名前:デフォルトの名無しさん [2020/07/04(土) 12:05:38.40 ID:pmIasW6W.net]
- >>643
僕は@t_wadaさんを知らないだけですよ 有名な人の名前を知ってるから自分はテスト技術に興味があって正しい知識を持ってるんだって思ってる? 論理を無視した権威による詭弁としか思えないし、それってただのマウンティングにしかならないんじゃないですか? 俺はt_wadaさんのこと知ってんだぞ!!おめーどーなっても知らねえからな!みたいな中卒ヤンキーのマインドを お持ちなのはわかったけど、議論の向き先としてそっちで良いのって僕は思いましたよ
- 668 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:06:25.67 ID:M3d71N9d.net]
- > 僕は@t_wadaさんを知らないだけですよ
その意味がわかってないんだろ? お前は勉強した必ず目にする名前を知らないって言ってるんだよ つまり勉強したことがないってこと
- 669 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:07:22 ID:XvIYAIJA.net]
- いいんじゃね、全てのメソッドをテストしたけりゃすればw
ただそれを強制されてることが一般的だと思って奴がいるのは滑稽だなw
- 670 名前:デフォルトの名無しさん [2020/07/04(土) 12:08:56 ID:pmIasW6W.net]
- >>646
人の名前覚えて悦に入る人の心境がわからないんだよなー 僕はプログラムのことにしか興味がないから 誰がそれを書いたのかよりも書いてある内容の方に興味がある 執筆者の名前を覚えて勉強した気になってるだけじゃないの?
- 671 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:09:30.14 ID:M3d71N9d.net]
- パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。 テストできているか不安があるならテストカバレッジを確認しましょう。 別クラスのパブリックメソッドとする プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを 示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。 テスト対象の可視性を(やや)上げる 例えば Java では、同一のパッケージからのみアクセスできる可視性があり(正式名称ではありませんが 「パッケージプライベート」と呼ばれます)、テストを同一パッケージに配置することでテストから アクセスできるような設計を行うことがあります。(ただし、この質問の場合は JavaScript なので、この手段はとれません) プライベートのまま、リフレクションでアクセスしてテストを書く リフレクションは最後の手段であり、強力な手段でもあります。プロダクトコードに手を入れることが できない状況や、レガシーコード(テストコードの無いコード)に対する「仕様化テスト(Characterization Test)」を 書いているような状況では、リフレクションは唯一の、かつ強力な手段になります。プライベートメソッドに テストを書くことのデメリットを理解しつつ、黒魔術の強力さを堪能しましょう。 (ただし、この質問の場合は JavaScript なので、この手段はとれません。JavaScript は比較的緩い言語ですが、クロージャの情報隠蔽は非常に強固です) まとめ 繰り返すと、プライベートなメソッドや関数をテストする必要は無いと考えています。プライベートなメソッドは、実装の詳細であるからです。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 672 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:10:37.41 ID:M3d71N9d.net]
- >>648
> 誰がそれを書いたのかよりも書いてある内容の方に興味がある >>649にあなたが興味があるはずの「内容の方」書きました。 本当に興味があるなら読んでね(読まないだろうけどw)
- 673 名前:デフォルトの名無しさん [2020/07/04(土) 12:14:01.28 ID:pmIasW6W.net]
- >>650
著作権法に違反してない? 大丈夫? 僕はt_wadaさんを知らないし、信奉する立場でもないので t_wadaさんがそう言ってるからそうなんだと思うことはないよ 内容に興味があるっていうのは、書いてあることをそっくりそのまま 自分の考えにするということではなくて自分の経験や知識に照らし合わせて 自分の考えを持つってことだよ 僕はその文章を読んでprivateメソッドをテストするべきだと思った
- 674 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:15:48.22 ID:M3d71N9d.net]
- > 著作権法に違反してない? 大丈夫?
もはや技術の話に反論できなくなったか 引用の範囲で著作権は関係ないな(爆笑) > 僕はt_wadaさんを知らないし、信奉する立場でもないので あのさぁ、お前。「t_wadaを知らない」という人の話じゃなくて その人が言った内容についての話をしろよ
- 675 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:16:19.37 ID:M3d71N9d.net]
- > 僕はその文章を読んでprivateメソッドをテストするべきだと思った
それはあなたの感想です。考えは何も述べていません。
- 676 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:18:15.28 ID:czCytfqY.net]
- >>639
> ↑それ(外部から呼び出したらだめだ!)はテストの目的じゃないよw 別に、デバッグ目的で一時的にprivateメソッドを呼びたいのなら、勝手に呼んでどうぞ。 だが、テスト工程...特に単体テストでprivateをpublicにするのはアウト。 本来、呼ばれないはずのprivateだったメソッドが呼ばれてしまえば、本来、不合格だったはずのカバレッジテストに合格してしまう可能性が出てくるし、privateメソッドを呼んだことで、本来ありえないクラス内部状態を作ってしまったら、単体テストの結果も変わってしまう。 テストは本番と同じ状態を保たないと駄目だよ。 プログラマーの開発工程におけるデバッグ及び動作確認とテストを混同させていないか?
- 677 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:19:20.76 ID:XvIYAIJA.net]
- 最後の行ありそう
- 678 名前:w []
- [ここ壊れてます]
- 679 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:19:46.76 ID:M3d71N9d.net]
- >>654
> だが、テスト工程...特に単体テストでprivateをpublicにするのはアウト。 ウォーターフォール開発? テストで問題が出ても問題を上流に戻したらだめって バグが出ても直したらいかんのかよw
- 680 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:20:53 ID:M3d71N9d.net]
- >>654
> プログラマーの開発工程におけるデバッグ及び動作確認とテストを混同させていないか? 今はプログラマーの開発工程におけるデバッグの話ですよ? 動作確認でprivateメソッドを呼んでテストなんてしませんから
- 681 名前:デフォルトの名無しさん [2020/07/04(土) 12:21:57 ID:pmIasW6W.net]
- >>652
大丈夫かなって正直に思っただけ、君が引用だと思っててもt_wadaさんが勝手に転載してんじゃねえ ぶっ殺すぞと思ってたらやばいじゃん、t_wadaさんって人を僕は知らないから 君がすごくぶっ殺されたりとかしないかなって思っただけ t_wadaさんの話を振ったのは君ですよ t_wadaさんを知らないのかー遅れてるーうひょーって有頂天になって書き込んでたのは君ですよ 僕は内容の話をしましたよ
- 682 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:22:14 ID:czCytfqY.net]
- > テストは本番と同じ状態を保たないと駄目だよ。
これを曲解されても困るから補足説明するけど、単体テストって、クラス単体のテストのことな? クラスを動かすための環境は自由に変えてもいいけど、クラスそのものを弄りかえるなって意味だからな?
- 683 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:24:12.62 ID:xAj06qrt.net]
- テストがでかけるアサートと本番動作は普通は異なるがな。
なんでも統一させようとして無理が出るから public, privateの議論はくだらんなと思うわけだ。
- 684 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:28:01.42 ID:czCytfqY.net]
- >>657
>>631でなんで、俺に反論した。
- 685 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:33:59.87 ID:M3d71N9d.net]
- >>658
やっぱりまだ人の話を続けるんですねw t_wadaさんが言った「内容」の話をしましょうね 負け組おじさんw
- 686 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:34:18.71 ID:M3d71N9d.net]
- >>661
知らんがなw
- 687 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:35:58.47 ID:M3d71N9d.net]
- >>660
クラスを動かすための環境というのはクラスの外界ってことはわかってるか? クラスの外界は変えていいから、テストコードから呼び出すし クラスの中で呼んでいる外界をモックやスタブで置き換えていいんだよ
- 688 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:37:35.05 ID:exw+beGf.net]
- テストの前提として、テストされるコードをいじってはいけない
テストのためにコードをいじってテストが終わったらコードを戻すんだと 本来のコードが仕様通り動くことが保証できない いじるのなら納品物が変わってくる
- 689 名前:デフォルトの名無しさん [2020/07/04(土) 12:38:43.12 ID:pmIasW6W.net]
- >>662
t_wadaさんを知らないのかーって言ったのは君で これがt_wadaさんの神々しい高貴な文章なんだーと引用したのは君じゃん 僕はそれを読みました。読んだ感想を今から言います。よく聞いてください。 privateメソッドをテストするべきだと思いました。
- 690 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:43:46.70 ID:M3d71N9d.net]
- >>665
> テストの前提として、テストされるコードをいじってはいけない > テストのためにコードをいじってテストが終わったらコードを戻すんだと いるじもなにもコードなんか変更しないだろ
- 691 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:44:39.72 ID:M3d71N9d.net]
- >>666
だからお前の感想は聞いてないって言ったよね? 少しはまともな意見も言えるかと思えば感想しかいない。 まあ意見を言った所で専門家よりも説得力がでるとは思えないがなw
- 692 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:47:54.13 ID:9ghyGMpS.net]
- >>654
ユニットテストする時は原則毎回新しいインスタンス作るので内部状態はリセットされるよ。 シングルトンがユニットテストやりにくいって言われる理由はこれ。
- 693 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:48:05.39 ID:M3d71N9d.net]
- >>666
> t_wadaさんを知らないのかーって言ったのは君で それは違うよねw 俺がとある専門家の「意見」を持ってきたら、 そいつは誰だーって言い出したのはお前だよねw ↓はい証拠 629 名前:デフォルトの名無しさん[] 投稿日:2020/07/04(土) 11:53:42.19 ID:pmIasW6W [22/31] >>624 誰だよそれ、YouTuberか? 権威主義的に誰かにすがりつくような真似をするな!
- 694 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 12:58:30.51 ID:wkevF9GB.net]
- privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
- 695 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:01:25.78 ID:M3d71N9d.net]
- 専門家の意見としては
パブリックメソッド経由でテストする 多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。 テストできているか不安があるならテストカバレッジを確認しましょう。 別クラスのパブリックメソッドとする プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを 示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。
- 696 名前:デフォルトの名無しさん [2020/07/04(土) 13:02:51.44 ID:pmIasW6W.net]
- >>670
君が先にその人を出して 僕が誰それなんでそんなの書いたのって聞いただけだよ そしたら君がt_wadaを知らないのかーって有頂天になったんじゃん 君はt_wadaさんに憧れてるんでしょ? だからt_wadaさんが書いた文章を引用したんでしょ 憧れとは理解とは最も遠い感情だってプリキュアが言ってました 僕が誰に憧れてるかはわかりますね?
- 697 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:06:20.56 ID:M3d71N9d.net]
- >>673
> 僕が誰それなんでそんなの書いたのって聞いただけだよ だから人に興味があるってことだよね? 無名の人なら、そんな無名なんか知るかー 有名な人なら、権威にすがるなー っていうんでしたっけ?w どちらにしろ意見に興味がなく 最初から「人」に文句をつけようと思って、誰か聞いたんでしょ?
- 698 名前:デフォルトの名無しさん [2020/07/04(土) 13:10:46.18 ID:pmIasW6W.net]
- >>674
t_wadaのブログってリンク提示されてもなにそれとしか思わないから 君がt_wada本人でこれが僕の考えだって示したならなるほどそういうことか privateメソッドはテストするべきだって思うけど 議論の最中にt_wadaのブログを出されても何いってんだこいつとしか思わない よくよく話を聞いてみると君はt_wadaさんのことが大変気に入っていて 憧れていてt_wadaさんの言うことは絶対だと思っている 君はt_wadaさんの権威にすがってるだけのつまらない人間なのじゃないかと僕は疑っています
- 699 名前:デフォルトの名無しさん [2020/07/04(土) 13:12:22.76 ID:pmIasW6W.net]
- 外人が書いた本を翻訳しただけで専門家でもなんでもないんじゃない?
- 700 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:12:24.10 ID:M3d71N9d.net]
- > t_wadaのブログってリンク提示されてもなにそれとしか思わないから
はい、内容を呼んでないと自白しましたw なんのために内容の一部まで引用したと思ってるんでしょうかね 読まずに誰それと「人」に文句をつけるための 質問しかしませんでした。
- 701 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:12:47.77 ID:M3d71N9d.net]
- >>676
お前の希望を言われたもなぁw
- 702 名前:575 mailto:sage [2020/07/04(土) 13:13:09.28 ID:sra5+07B.net]
- なんで今朝の575からこんなに進んでるの...
- 703 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:13:57.68 ID:MJUVFEDB.net]
- 子供の喧嘩ですw
- 704 名前:デフォルトの名無しさん [2020/07/04(土) 13:13:59.57 ID:pmIasW6W.net]
- >>677
どうしてその内容を引用したの? 君はそれが正しいと思ったの? その根拠は提示できる? できないでしょ、君はt_wadaを専門家だと思ってて 専門家の言うことは正しいのだ、だから内容が正しいのだと思い込んでいる だからその内容を引用して何かを示した気になってるだけ
- 705 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:14:24.44 ID:M3d71N9d.net]
- >>679
根拠ない主張を繰り返すだけのやつが登場するとそうなるよw
- 706 名前:デフォルトの名無しさん [2020/07/04(土) 13:14:41.46 ID:pmIasW6W.net]
- >>678
外人が書いた本を翻訳したら専門家なのか? そっちの方が希望じゃん
- 707 名前:デフォルトの名無しさん [2020/07/04(土) 13:15:16.84 ID:pmIasW6W.net]
- >>682
専門家という肩書の権威にすがりつく君のことかな?
- 708 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:15:33.49 ID:M3d71N9d.net]
- >>681
正しい根拠はすでに上の方で何度も言ってるじゃんw それを補完するために専門家の意見を持ってきただけで じゃあ反対にお前の言うことが正しいという根拠はなんだよ?
- 709 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:15:46.59 ID:xAj06qrt.net]
- >>665
その辺は結局組織がどうコードを管理するかってだけの話だ。 バカみたいにがんじがらめにした結果誰もコードをいじらない(リファクタリングしない) ってことにしかならん。
- 710 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:16:11.64 ID:M3d71N9d.net]
- >>683
> 外人が書いた本を翻訳したら専門家なのか? そっちの方が希望じゃん 翻訳「も」してるだけだろw
|

|