[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/04 02:09 / Filesize : 316 KB / Number-of Response : 1037
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

カプセル化の有害性、オブジェクト指向は愚かな考え



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)

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



711 名前:デフォルトの名無しさん [2020/07/04(土) 13:17:04.15 ID:pmIasW6W.net]
>>668
t_wadaさんの文章はt_wadaさんの感想でしかないよ

712 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:17:18.71 ID:M3d71N9d.net]
どうやら翻訳は副業らしいなw

713 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:18:06.68 ID:M3d71N9d.net]
>>688
意見と感想の違いぐらいつけようよw

話は簡単じゃないか
t_wadaさんの意見と
お前の感想

説得力があるかどうかだよ

714 名前:575 mailto:sage [2020/07/04(土) 13:18:30.04 ID:sra5+07B.net]
とりあえず、落ち着け。
議題がよくわからんが、落ち着け...落ち着くのだ。

715 名前:デフォルトの名無しさん [2020/07/04(土) 13:19:53.55 ID:pmIasW6W.net]
>>687
いやいや翻訳だけが全実績じゃん
t_wadaさんがprivateメソッドをテストせずにとても
すばらしいシステムを構築していま全世界で使われてますってことないじゃん

翻訳したからまるで本物の執筆者のように思われてあたかも専門家のように思い込まれてるだけで
専門家でもなんでもなくただの翻訳者だよ

716 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:20:32.65 ID:MJUVFEDB.net]
いいんだよ、元から不毛なネタのスレだw

717 名前:デフォルトの名無しさん [2020/07/04(土) 13:21:46.90 ID:pmIasW6W.net]
>>690
君が説得力を

718 名前:感じたら意見になり、
説得力を感じなかったら感想になるってだけじゃんそれ
なにそのガバガバな日本語運用

わかりましたでは今から僕が君を説得してみせます、よく聞いてください
privateメソッドはテストするべきです
[]
[ここ壊れてます]

719 名前:575 mailto:sage [2020/07/04(土) 13:21:53.40 ID:sra5+07B.net]
>>693
それもそうか(諦め)
内容は読んでないけど、まぁ、ROMるか。

720 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:22:11.62 ID:M3d71N9d.net]
>>692
なんでググらないでウソ書くの?
そうやって他の人を騙そうとしてるでしょ

https://t-wada.hatenablog.jp/entry/clean-code-that-works
職業はコンサルタントであり、プログラマです。最近では技術顧問としてもいくつかの会社を支援しています。
また、自分の自由になる時間には、オープンソースソフトウェアの開発を行っています。
本業はプログラマでありコンサルタントですが、副業としては技術書の出版、具体的には監訳や翻訳に関わっています。

JavaScript でテストを書く際のハードルを大幅に下げるために開発した power-assert は、
Mocha や Jest と組み合わせて使え、 AVA には既に内蔵されており、ありがたいことに世界中で使われるプロダクトまで育ちました。

ひとつ例を挙げるなら、アリババグループで採用頂き、アリペイやアリババクラウドのテストに使われているという話です。



んで、こういう人に比べて、お前はなにかすごいことしたの?



721 名前:デフォルトの名無しさん [2020/07/04(土) 13:25:12.35 ID:pmIasW6W.net]
>>696
営業努力の賜物やろな、頑張ってるんやなt_wadaさん

僕がなにかしたのかという質問ですが僕はすごいことを発見しました
privateメソッドはテストした方が良いです

722 名前:デフォルトの名無しさん [2020/07/04(土) 13:25:49.67 ID:pmIasW6W.net]
ほんまt_wadaさん好きやな

723 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:26:38 ID:M3d71N9d.net]
>>698
t_wadaさん以外にすごい人がいたら教えて下さいw

724 名前:デフォルトの名無しさん [2020/07/04(土) 13:31:25 ID:pmIasW6W.net]
>>699
他人に憧れをいだいて必要以上に持ち上げるのが僕は気持ち悪く感じます
僕はすごい人ですが、君に憧れられるのは気持ち悪いです、なのでごめんなさい

725 名前:デフォルトの名無しさん [2020/07/04(土) 13:31:55 ID:pmIasW6W.net]
振ってしまってなんかごめんなさい

726 名前:デフォルトの名無しさん [2020/07/04(土) 13:33:19 ID:pmIasW6W.net]
他人を必要以上に持ち上げるのって自分に自信がない人がやりがちなので
アドバイスするとしたら色々経験したがいんじゃないかということですね

727 名前:デフォルトの名無しさん [2020/07/04(土) 13:34:54.50 ID:KKcCItOc.net]
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0

☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip

728 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:48:28.05 ID:iuca8iKQ.net]
根拠が聞けるかなと思ったターンで
他人の引用を持ってきて権威に頼っただけである場合
議論は終了である
続ける価値がないから

729 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:50:52.32 ID:M3d71N9d.net]
いえ、自分と同じ意見を言ってる人を持ってきただけなので
話は続いてますよ?

でもなぜか、話の続きをやめてしまっているのです。
なぜでしょうね(笑)

730 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:09:00.83 ID:xhESn47n.net]
プログラム板でコード使って語りもしない時点で両者どちらも無能
プログラマならコードで主張



731 名前:デフォルトの名無しさん [2020/07/04(土) 14:17:35.76 ID:pmIasW6W.net]
>>706
有能さんあざーす!コードどこ?

732 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:19:05.65 ID:JeoapmHS.net]
privateメソッドとしてどの程度複雑なことをやらせるか、privateメソッドをどの程度使うかについて、感覚の違う2つのスタイルがあるんじゃないか?

一方の極は、privateメソッドには極めて単純なことしかさせず、少しでも複雑な内容なら(他のヘルパークラス等の)publicメソッドに切り出すスタイル。
「privateはpublic経由でのみテストする(直接はテストしない)」という方針を採る場合には、privateメソッドの内容は非常にシンプルな内容に限らざるを得ないし、逆にそうしないと>>555指摘の組み合わせ爆発の問題を回避できない。
>>624>>649で紹介されている議論や、>>588はこの立場なんだろう。
このスタイルでは、下記のスタイルでは1つのprivateメソッドで処理できる内容を、複数のクラスに属するメソッドの協調関係で処理することになる。
これを適切な機能分化がされていると肯定的に捉えるか、必ずしも汎用性があるわけではない小さなヘルパークラスが増えることになり、見通しが悪くなると否定的に捉えるかは考え方によるだろう。

もう一方の極は、privateメソッドだからといって、内容をシンプルに限らなければいけない必然性はないというスタイル。>>589は、こちらの立場なんだろう。
このスタイルでは、public経由でprivateのテストをするというのは現実的ではないから、privateメソッドでも直接テストの対象とすることが必要になる。言語機能の関係でprivateを直接テストすることが難しい場合には、テストのやり方に工夫が必要になる。
メリット・デメリットは前記のスタイルの反対。

こんなふうに整理できるんじゃないかと思うが、どうだろう。

733 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:19:16.92 ID:xhESn47n.net]
>>707
主張したいことがあるんでないの?
それを示すコードもあるやろ?

734 名前:デフォルトの名無しさん [2020/07/04(土) 14:20:14.26 ID:pmIasW6W.net]
>>709
でも僕無能だからコードないよ
君有能だからコードあるよ
早く出すよ

735 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:22:23.00 ID:xhESn47n.net]
>>710
俺は別にプログラムのこのスレタイについて主張したいことないからなあw
君はプログラマでプログラムについて何か主張したいんだろ?

736 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:23:09.56 ID:kiJuYkd6.net]
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね

737 名前:デフォルトの名無しさん [2020/07/04(土) 14:23:22.38 ID:pmIasW6W.net]
>>711
関係ないよ、早くコード出すよ

738 名前:デフォルトの名無しさん [2020/07/04(土) 14:23:44.26 ID:pmIasW6W.net]
早くコードだすよ!

739 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:27:56.17 ID:xhESn47n.net]
>>714
あーこっちがきちがいだったかw
触れないようにするわ

740 名前:デフォルトの名無しさん [2020/07/04(土) 14:28:29.45 ID:pmIasW6W.net]
www



741 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:33:12.47 ID:xhESn47n.net]
このように、コードを使わず偏った主張するやつはだいたい頭がおかしい
この板ではこうやって簡単にこういう奴をあぶり出しできるんよな

742 名前:デフォルトの名無しさん [2020/07/04(土) 14:34:10.41 ID:pmIasW6W.net]
>>717
君、コード出してないよ
コード出すよ

743 名前:デフォルトの名無しさん [2020/07/04(土) 14:34:57.85 ID:pmIasW6W.net]
早 く コ ー ド 出 す よ !

744 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:51:30.64 ID:xhESn47n.net]
>>719
^^

745 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:56:58.97 ID:M3d71N9d.net]
>>708
> privateメソッドとしてどの程度複雑なことをやらせるか、privateメソッドをどの程度使うかについて、感覚の違う2つのスタイルがあるんじゃないか?

privateとかpublicとか関係なく、複雑なことをやらせるなよ
関数はせいぜい一画面程度(50行)ぐらい、大半は20行以下にするもんだ

746 名前:デフォルトの名無しさん [2020/07/04(土) 15:00:38 ID:pmIasW6W.net]
はいはいどうせt_wadaがそう言ってたんだろ

747 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:01:31 ID:M3d71N9d.net]
>>722
また「人」の話かよw

748 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:02:35 ID:M3d71N9d.net]
権威ある専門家が言ってることだから間違ってます
俺は認めませーんって。どういう気持で言ってるんだろうねw

749 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:04:45.61 ID:M3d71N9d.net]
俺は「そいつは権威ある専門家

750 名前:セ!」って指摘しただけで
勝ったつもりにはなれないなぁ(笑)
[]
[ここ壊れてます]



751 名前:デフォルトの名無しさん [2020/07/04(土) 15:05:05.57 ID:pmIasW6W.net]
t_wadaはなんて言ってるんだよ!

752 名前:デフォルトの名無しさん [2020/07/04(土) 15:05:39.57 ID:pmIasW6W.net]
t_wada原理主義

753 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:06:52.47 ID:iuca8iKQ.net]
必死だなw

754 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:07:21.60 ID:gUMCer1d.net]
今までたくさんのキチガイPGを見たが
privateメソッドだからテストしないとか言ってるやつだけは許さない
テメーの金玉はここで潰す

755 名前:デフォルトの名無しさん [2020/07/04(土) 15:10:41.07 ID:pmIasW6W.net]
ごりごりーごりごりー
そうだ!すりつぶした粉で大根餅作ろうよ!

756 名前:575 mailto:sage [2020/07/04(土) 15:11:12.87 ID:sra5+07B.net]
>>729
問題なのは、そのprivateの挙動をどうやって確認するのかって話なのかな?

単体テスト?総合テスト?それとも実装中しながらのデバッグ作業の話?

正直、未だにどこで揉めているのかわかりません。
誰か議題教えて。

757 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:13:12.65 ID:iuca8iKQ.net]
>>731
> 正直、未だにどこで揉めているのかわかりません。

自転車置き場

758 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:14:01.93 ID:M3d71N9d.net]
>>731
1. public、privateに限らずコードはシンプルにするべき
2. シンプルであるなら、privateはpublicメソッド経由でテストできる
3. publicメソッド経由でやったらprivateがろくにテストできないというなら設計が間違ってる
4. 設計上の問題はバグと言ってもいい。バグなんだから直せ

ここまではあってる

759 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:17:09 ID:gUMCer1d.net]
>>731
設計書見ろよゴミカス
書いてないなら死にまくれ

760 名前:575 mailto:sage [2020/07/04(土) 15:21:35 ID:sra5+07B.net]
>>734
なんで、スレの流れに沿って説明しただけの俺がゴミカス呼ばわりされるのかもわからん。何このスレ。
>>576 >>578でも俺の意見ですらない部分に的外れな回答がつくし。



761 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:24:14 ID:M3d71N9d.net]
動けばOKって考えてる人がどれだけ多いかだな
テストを自動化するという考えがない
シンプルな設計をするという発想がない
動けば設計に問題はないと考えている

762 名前:デフォルトの名無しさん [2020/07/04(土) 15:29:27 ID:pmIasW6W.net]
>>735
Welcome to Underground

763 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:32:02.34 ID:NXT3QGLz.net]
>>733
あってるの1だけじゃないかw

764 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:34:57 ID:iuca8iKQ.net]
叩き台つくった(´・ω・`)
https://ideone.com/1XhPwl

765 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:39:15 ID:e19OrKR5.net]
なんかやべえ流れになってるな
とりあえずつっこんどくと
1. unitテストの定義に世界共通の定義など存在しない
2. unitテストという単語はプロジェクト用語であり、プログラム用語ではない
3. マーティンはunitテストという単語と自動テストの単語わけたらいいんじゃない?と提案してる。xunit
4. publicとprivateはクラス設計のため、もっと言えばクラス間の責任範囲のために存在している
5. xunitテストのためだけにprivateをpublicにするのは誤り。本当にやりたければリフレクションでもすればいい
6. c2カバレッジ100%するかどうかは分野次第
7. 我々は十分なシステムを作るのが目的である。完璧なプログラムを作ることが目的ではない。そして十分な利益を獲得することが目的でもある

766 名前:575 mailto:sage [2020/07/04(土) 15:57:07.88 ID:sra5+07B.net]
ちなみに、的はずれって100%君のことね。まぁ、そんなの今更どうでもいいか。

実際、クラスをどんな風にテストするのか興味あるね。

767 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:03:21.65 ID:e19OrKR5.net]
やだよ組み込みが普通だと思ってる人との会話なんかしたくない

768 名前:575 mailto:sage [2020/07/04(土) 16:32:24 ID:sra5+07B.net]
そんなー。

769 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:32:41 ID:IaMjsjOG.net]
>>735
なんだ早く死ねよ

770 名前:575 mailto:sage [2020/07/04(土) 16:36:24 ID:sra5+07B.net]
まぁ、Android開発(アセンブラレベルからJavaアプリレベル)をやってるから、たぶん、大丈夫なはず。

組み込み=staticおじさんのレッテルが貼られがちだけど、
私はstaticおじさんじゃないんだけどなー...



771 名前:
まぁ、アセンブラレベルの階層になると、オブジェクト指向要素なんて微塵もないけど。
[]
[ここ壊れてます]

772 名前:575 mailto:sage [2020/07/04(土) 16:37:37.70 ID:sra5+07B.net]
>>744みたいな知的障害者が時々沸くのはなんで?

773 名前:575 mailto:sage [2020/07/04(土) 16:46:14.68 ID:sra5+07B.net]
もういいや。アホくさ。こんなスレ覗いたのが間違いだったな。
人生を無駄にした気分だ。
このスレを覗く時間を使って別して作業してた方が有意義だったよ。

>>744
君はID変えながら死ね死ね連呼しているみたいだけど、気を付けた方がいいよ。あばよ、中身がない死ぬべき技術者さん。

774 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:53:03.01 ID:4XE5L1k5.net]
プ板、と言うか専門板なんてそれぞれの話題を餌にマウント取り合ったり罵り合ったりする所だから。
相手にしたら負け。

775 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 17:09:48.00 ID:O/jhkl6h.net]
言語の制約によって思考が制約されてる典型例

カマッてくれる人が量産されて>>1が喜んでる

776 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 18:16:38.54 ID:sCZUG34Z.net]
privateメソッドのテストしないとか言ってるカスとまともに会話するメリットないだろ

777 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 18:35:31.64 ID:gmurOIZf.net]
まあテストやるって言ってもこれくらい意見が違って揉め事になるってのは
結構普通だったりするからそういう勉強にはなってるんでないの。

778 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 20:02:50.07 ID:M3d71N9d.net]
このスレの結論

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

パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。
テストできているか不安があるならテストカバレッジを確認しましょう。

別クラスのパブリックメソッドとする
プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の
プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の
プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の
コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。

テスト対象の可視性を(やや)上げる
例えば Java では、同一のパッケージからのみアクセスできる可視性があり(正式名称ではありませんが
「パッケージプライベート」と呼ばれます)、テストを同一パッケージに配置することでテストから
アクセスできるような設計を行うことがあります。(ただし、この質問の場合は JavaScript なので、この手段はとれません)

プライベートのまま、リフレクションでアクセスしてテストを書く
リフレクションは最後の手段であり、強力な手段でもあります。プロダクトコードに手を入れることが
できない状況や、レガシーコード(テストコードの無いコード)に対する「仕様化テスト(Characterization Test)」を
書いているような状況では、リフレクションは唯一の、かつ強力な手段になります。プライベートメソッドに
テストを書くことのデメリットを理解しつつ、黒魔術の強力さを堪能しましょう。
(ただし、この質問の場合は JavaScript なので、この手段はとれません。JavaScript は比較的緩い言語ですが、クロージャの情報隠蔽は非常に強固です)

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

779 名前:デフォルトの名無しさん [2020/07/04(土) 21:00:07.43 ID:42LT/T3f.net]
>>752
三行以上は読んでもらえないから工夫が必要。

780 名前:デフォルトの名無しさん [2020/07/04(土) 21:07:29.85 ID:n1PM9L+Z.net]
ガワだけのクラスが出来上がるな

#include <iostream>
using namespace std;

class Test{
private:
int methodPrivate(const int x)const{
return 2*x;
}
public:
int method(const int x)const{
return methodPrivate(x);
}
};

int main() {
Test test;
cout << test.method(3) << endl;
return 0;
}

この調子で全部のメソッドにペアになるprivateメソッド作って徹底的に隠蔽してしまえば、相手から調査されることはない

そして上流の方から指定されているメソッドはスッカラカン
実質的に何もしない
名前があるだけ

この技法をprivate開発と名付けよう
相手側に技術が流出することがない



781 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 2 ]
[ここ壊れてます]

782 名前:1:08:27.02 ID:NXT3QGLz.net mailto: >>752
×このスレの結論
◯ぼくの主張の結論
[]
[ここ壊れてます]

783 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 21:10:05.29 ID:NXT3QGLz.net]
>>755
間違えた
×ぼくの主張の結論
◯ぼくがまとめた、偉い人が書いた本の受け売り情報

784 名前:デフォルトの名無しさん mailto:age [2020/07/04(土) 21:41:09.24 ID:pmIasW6W.net]
本人の経験が感じられなくて薄っぺらいんだよなあ

785 名前:デフォルトの名無しさん mailto:age [2020/07/04(土) 21:43:15 ID:pmIasW6W.net]
僕の高い知性と豊富な経験に基づく主張を聞いて欲しい
privateメソッドはテストした方がいい

786 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 21:56:15 ID:gmurOIZf.net]
>別クラスのパブリックメソッドとする
>プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
>示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の
>プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の
>プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の
>コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。
これだけは意味ある意見ではあるな。他はカスみたいな理由だが。

787 名前:デフォルトの名無しさん [2020/07/04(土) 22:11:41 ID:42LT/T3f.net]
カバレッジ測定ツール高いし持ってないので、private直接テストしたい。

788 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:19:33 ID:O/jhkl6h.net]
>>759
>>プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
>>示唆している場合があります
わかる

>>コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。
これは選択肢の一つであって常にそうすべきなわけではないんだよね
クラスの分割基準とテストを書く書かないの基準は別だから

789 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:19:58 ID:O/jhkl6h.net]
プライベートだとテストしにくいので、パブリックメソッドとして抽出し、普通にテストしましょう
これが本音

790 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:47:43.56 ID:1l6Tw/KB.net]
https://i.imgur.com/FG4MVEW.jpg



791 名前:デフォルトの名無しさん [2020/07/05(日) 00:43:13.75 ID:9F15TCk0.net]
プライベートがテストできるということはホワイトボックスなわけでユニットテスト段階でしょ。
そもそもプライベートをテストするにはソース自体書き換えないと呼べないじゃん。

ソース自体書き換えてテストするようなことはビジネスの世界ではあんまり無いしテストと
なったらブラックボックスが普通。

てかもはやテストの話でカプセル化やOO関係ないな。

792 名前:デフォルトの名無しさん [2020/07/05(日) 01:18:10.47 ID:LRfXHt7v.net]
ホワイトやブラックについて語るのは時期が悪いというか、国家を危険にさらす可能性さえあるからね。

もう少し社会情勢に気を配ろうよ。

793 名前:デフォルトの名無しさん [2020/07/05(日) 01:32:28.51 ID:LRfXHt7v.net]
昔のホームページにはサイタマップというものがあった。

794 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:04:25.24 ID:9F15TCk0.net]
埼玉県民にはそこらへんの草でも食わせておけ

795 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:11:14.07 ID:58eR5uXa.net]
>>764
> ソース自体書き換えてテストするようなことはビジネスの世界ではあんまり無いしテストと

まさかpublic・privateメソッドのテストをテスト工程でやる、
public・privateメソッドを書いた人と別の人がやるって思ってないか?

public・privateメソッドを実装中に、その作ったもののが正しく動くかどうか
public・privateメソッドのソースを書いた人が、書いてる段階でテストするんだから
当然ソースを書いて(書き換えて)テストするに決まってるじゃん

お前は、その後の(統合)テスト工程でソースコードを変えてテストとか言ってるだろw

796 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:46:27.47 ID:9F15TCk0.net]
>>768
なんなのその口調気持ち悪い。

大規模開発だとテスト工程を別の人間が何度もやるのは当たり前だよ。
デベロッパ個人のテストはコーディングの範疇なのでもちろん個人ではやるが
それほど大事ではない。

組み込みで車のブレーキ制御とかは全く別の話だろうがOOとかカプセル化とは
基本かけ離れた分野。

797 名前:デフォルトの名無しさん [2020/07/05(日) 02:48:43.07 ID:LRfXHt7v.net]
テストしない理由を考えるのは。

798 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:50:28.66 ID:58eR5uXa.net]
>>769
> 大規模開発だとテスト工程を別の人間が何度もやるのは当たり前だよ。

大規模開発だとpublicやprivateメソッドのテストを別の人がやるって?
テストコード専用に書く人でもいるのかよw
それはどこの話だ?事例の一つぐらい持ってきてから言え

799 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:51:54.42 ID:9F15TCk0.net]
>>771
某アメリカ製のパッケージとかだな。

むしろテストコード専門に書く人いないのかよ。じゃあOOとかカプセル化とか
必要なほどの規模じゃないか体制がおかしいな。

800 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:53:01.58 ID:58eR5uXa.net]
> 某アメリカ製のパッケージとかだな。

だから事例は?



801 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:54:30.54 ID:58eR5uXa.net]
ユニットテストのコードを他の人が書いて、どうやってTDDをやるのか不思議なんだがw

先にテストコード書く人がテストコードだけ書いて、
これに通るように実装しろ!
これがTDD(テスト駆動開発)だ!
とか言ってる所とかでもあるんか?

事例を持ってきてくれ

802 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:56:40.99 ID:9F15TCk0.net]
だからユニットテスト自体が少なくともビジネス分野では大事じゃないと
上にも書いてあるが。

事例なんか出せるわけないだろ。中の人なんだから。

803 名前:デフォルトの名無しさん [2020/07/05(日) 02:58:40 ID:LRfXHt7v.net]
製品についてネットに書き込むときは、法務と企画のハンコ必要なので。

804 名前:デフォルトの名無しさん [2020/07/05(日) 02:59:12 ID:LRfXHt7v.net]
ちなみに法務俺、規格俺だけど。

805 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 03:03:18.34 ID:9F15TCk0.net]
今関わってる製品とかソース10万ファイルくらいあってそれぞれのファイルに
分岐なんか少なくとも数十から数百はあると思うが、その数百万から数千万、下手したら
億の分岐を全部全パターンテストするの?

テストなんてそのあとファンクショナルやってリグレッションやってアクセプタンスやって
ってあるのに、ユニットテスト「だけ」でそれでしょ?

サグラダ・ファミリアかな?

806 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 03:03:49.83 ID:58eR5uXa.net]
>>775
中の人だから事例が事例を出せないってことは、
お前の会社以外でやってないってことだろw

807 名前:デフォルトの名無しさん [2020/07/05(日) 03:04:01.72 ID:LRfXHt7v.net]
正しいとか正しくないとかどうでも良いので、privateのテストをさせてほしいものですね。

808 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 03:05:23.08 ID:58eR5uXa.net]
>>778
> 今関わってる製品とかソース10万ファイルくらいあってそれぞれのファイルに
> 分岐なんか少なくとも数十から数百はあると思うが、その数百万から数千万、下手したら
> 億の分岐を全部全パターンテストするの?

それユニットテスト関係ないよね?

手動で全パターンをテストするの?
答えはお前自身が言えるはずだよね?

809 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 03:06:25.42 ID:58eR5uXa.net]
ユニットテストなんかしてねーよ
ソース修正するたびに、
億の分岐全パターン手動テストしてるんだよ!

って言ってほしいな?
まだかな?

810 名前:デフォルトの名無しさん [2020/07/05(日) 03:13:56.54 ID:LRfXHt7v.net]
けんか腰は知能が高いと言われるム板に似合わないんだよな。
ユーモアを交えて会話するべきだと思います。



811 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:06:24 ID:9F15TCk0.net]
>>779
知ってる限りGAFAでもERP各社あたりでもやってないけどね。

試しに(ドイツだが)SAPあたりにカバレージどれだけですかって聞いてみれば?
何それ美味しいの?だよ。

まあこういう人は何言っても無駄だし下手に事実いうと発狂するからもう相手は
おしまい。

812 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:11:13.84 ID:58eR5uXa.net]
ではGoogleの事例

https://feb-acchan.hat
enablog.com/entry/2018/03/11/214344

現状について
Googleでは、420万ほどのテストが存在して、1日1億5千万テストケース
実行されていて(150million test execution/dayだからあってますよね?)、
1テストケースあたり35回実行されているらしいです。

そして、これらがすべて自動テストであり、手動テスト率が驚異の0%!
ただし、UX系のテストは手動だそうです。
UIのテストなどは自動化できるが、UXはさすがにまだ人手とのことで、
人の感覚などが関係するUXテストがAIによってテスト可能で人の仕事が無くなるといった日はまだ到来していません。

自動テストですが、毎テストごとに420万テストケースを実行しているわけではなく、
全テストケースを実行するのは一定の間隔で、普段は修正に対して依存があるテストだけを実行しているそうです。

813 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:13:30.65 ID:58eR5uXa.net]
Googleの考え方

https://www.publickey1.jp/blog/11/post_144.html

テスターはデベロッパーがテストできるようにするのが仕事
このようにEngineering Productivityのメンバーのレポートラインと
所属を分けることのメリットを、Whittaker氏は次のように書いています。
ここにグーグルの品質管理の大事なポイントがあるようです。

一般にテストは製品開発の最後の段階で行われることが多く、製品チーム/開発チームの
中にテストチームを抱えても、テストフェーズ以外は手持ちぶさたになってしまうため、
多くの開発組織ではテストチームは製品チーム/開発チームとは別に存在し、
必要なときに登場してテストを行う、というケースがほとんどです。

====以下重要====

ところがグーグルではEngineering Productivityに属する、テストのノウハウを持ち支援を
行うエンジニアたちは、前述のように各製品チームに所属しています。

そう、グーグルではテストチームではなく、製品チームが自身で品質管理を負っている。
各デベロッパは自身でテストすることを期待されている。テスターの仕事は、自動テストの
インフラを確立することと、それによってデベロッパ自身がそれをプロセスの中で実行できるようにすること。
テスターはデベロッパーがテストできるようにするのだ。

各製品チームは、Engineering Productivityのメンバーの支援を受けつつ、自分たちの責任で
テストを行わなければならない、ということがグーグルのテストを行う際のポリシーのようです。

814 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:14:26.63 ID:58eR5uXa.net]
https://www.publickey1.jp/blog/11/post_144.html

Whittaker氏はさらに次の記事「How Google Tests Software - Part Two」で、
エンジニアに与えられる3つの役割についても触れています。

Softweare Engineer in Test(SET)
テストのしやすさ(Testability)にフォーカスした役割。デザインレビューをし、
品質やリスクをチェック。コードをテストしやすいようにリファクタリングする。
ユニットテストや、テストフレームワーク、自動テストも書く。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

815 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:16:28 ID:58eR5uXa.net]
「コードをテストしやすいようにリファクタリングする。」

っていうのがまさにprivateでテストしたいのに
public経由でテストできない

ならばテストしやすいようにリファクタリングしましょうって話になってる

816 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:18:26 ID:58eR5uXa.net]
https://monoist.atmarkit.co.jp/mn/articles/1705/24/news008.html

C/C++かつxUnit系ツールは、数分調べるだけでも数種類見つかります。
今回はその中の1つ「Google C++ Testing Framework(以下、GoogleTest)」の
使い方を紹介します。

Google Testとは、IT業界の巨人、グーグル(Google)製の
単体テストフレームワーク(C/C++用)です。MinUnitと比べて高機能で、
さまざまな使い道があります。ただし、MinUnit同様、テストコードを記述するため、
C/C++をある程度知ってることが前提です。

817 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:19:35 ID:9F15TCk0.net]
>>785
テスト件数が問題なのではない。オートメーションすればファンクショナルレベル
でのテストはいくらでも流せる。

新しいファンクション・メソッドを書くたびに、あるいは変更をするたびに
全ての条件を網羅して、それをテストケースにして、コード自体をモディファイして
テストした後、結果をドキュメント化してまたコードを元に戻すということはやらないという話。

プライベートのファンクション・メソッド単位でC2100%テストしていくというのは
そういうこと。

818 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:22:02 ID:58eR5uXa.net]
米Google、JavaScriptユニットテストフレームワーク「JS Test」をオープンソースで公開
https://mag.osdn.jp/11/10/03/1012250

米Googleは9月29日、JavaScriptユニットテストフレームワーク「Google JS Test」を発表した。
元々はGoogle社内のプロジェクトで利用されていたもので、ライセンスはApache License 2.0。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

819 名前:デフォルトの名無しさん [2020/07/05(日) 04:27:51 ID:9F15TCk0.net]
いや、だからそういうツールがあるのなんて常識だが、privateはテストしない。
上にも書いてるがprivateはソース自体弄らないとテスト自体できないわけで、
そういうツールが自動でソースを弄ってコンパイルし直してprivateのメンバーを
全パターンするわけでは、当たり前だけど、無い。

クラス単位でパブリックのメソッドに対してテストコードもセットで書くということは
当然ある。

820 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:29:16 ID:58eR5uXa.net]
facebook / j



821 名前:est
https://github.com/facebook/jest

https://jestjs.io/ja/
Jest はシンプルさを重視した、快適な JavaScript テスティングフレームワークです。
[]
[ここ壊れてます]

822 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:31:02 ID:9F15TCk0.net]
全くわかってないなこりゃ。

823 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:33:27 ID:58eR5uXa.net]
反論すりゃいいのにw

824 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:34:11 ID:58eR5uXa.net]
憶測に基づいた発言はいらないよ?
俺はGoogleやFacebookとユニットテストに関連する事例を上げただけ

825 名前:デフォルトの名無しさん [2020/07/05(日) 04:34:11 ID:LRfXHt7v.net]
テストの専門家だからそう思うのでは。

826 名前:デフォルトの名無しさん [2020/07/05(日) 04:49:06.73 ID:LRfXHt7v.net]
完ぺきにテストしたからといって製品の完全性を保証することはできません。
したがってテストしないほうが良いのです。

827 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:52:22.10 ID:58eR5uXa.net]
ほらなw

完璧にテストした所で落ちない飛行機はありません
したがってテストしないほうがいいのです

と言い始めた
事例と自分の考えの矛盾を正せず、頭が狂い始めた証拠。
ここから荒らしと変貌する前触れだな

828 名前:デフォルトの名無しさん [2020/07/05(日) 04:53:23.27 ID:LRfXHt7v.net]
食いついてきた。
嘘みたい。

829 名前:デフォルトの名無しさん [2020/07/05(日) 04:58:23.98 ID:LRfXHt7v.net]
privateもテストさせていただけるとありがたいけど、禁止するのが正しいことになってるからな。

830 名前:デフォルトの名無しさん [2020/07/05(日) 04:59:58.66 ID:LRfXHt7v.net]
Visualstudioのテストエクスプローラを使うと考えが変わるのでは。
道具の問題かもしれない。



831 名前:デフォルトの名無しさん [2020/07/05(日) 05:53:15.48 ID:9F15TCk0.net]
ユニットテストというのはプロジェクトによってかなり幅があるわけで、
当たり前の話だがテストオートメーションのプログラムが勝手にコード
弄ってコンパイルしなおしてPrivateをテストするわけが無いのだよ。

832 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:05:37.56 ID:58eR5uXa.net]
↑みたいなことを言ってるやつがGAFAは〜と
なんのソースもなしに言ってるわけだよ
こんなやつの話を聞くやつがいると思うかね?

833 名前:デフォルトの名無しさん [2020/07/05(日) 06:06:03.12 ID:9F15TCk0.net]
ずれるかもしれないが下のような場合、privateにnullを突っ込んだらヌルポだが
privateをわざわざコード弄ってまで別にテストするようなことは少なくとも
ビジネスソフトでは知ってる限り無い。組み込みとかは知らんし必要ならやれば良いけど。

class ChinTester {
public void testChin(int[] len) {
if (len==null){System.out.println("You are a woman");
return;}
if (len.length<11){ uncS(len);}
else{funcB(len);}
return;}

private void funcS(int[] len){
if (len.length<9){System.out.println("Smallest");
}else{System.out.println("Smaller");}
return;}

private void funcB(int[] len){
if (len.length<14){System.out.println("Medium");}
else if (len.length<16){System.out.println("Bigger");
}else{ System.out.println("Wow!");}
return;}
}

834 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:21:04.56 ID:9F15TCk0.net]
あと日本のNTTデータから降りてくるような大企業案件とかもやったことが無いので知らん。
アメリカのビジネス系一般の話。

835 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:25:10.48 ID:M+BkbwUs.net]
>>805
そのコードを見ただけで素人ってわかるよw

836 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:27:32.73 ID:9F15TCk0.net]
はいはいそうですね。

837 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:33:43.45 ID:M+BkbwUs.net]
1. 関数名が意味不明
2. インデントがめちゃくちゃ
3. スペースを入れる所が統一されていない
4. lenが配列なのはなんでだ?
5. nullを情報として扱うな
6. 戻り値なしなのに関数の最後でreturnを書くな
7. 数値(長さ?)判定と文字出力を同じ関数に同居させるな
8. テストするなら、長さを入力し文字列を返す関数を作れ

なんでたったこれだけの関数で
こんなにレビューの指摘項目が存在するんだかw

838 名前:デフォルトの名無しさん [2020/07/05(日) 06:38:43.59 ID:9F15TCk0.net]
口調が気持ち悪い人は相手しても仕方ないからほっとくとして、上の例だと(に限らず)
funcSとfuncBをテストするためにはコード弄らなきゃいけないし、そもそもtestChin()で
リクワイアメントとエッジケースは全てテストするんだから、無駄にテストが倍以上に
なるしそれも手動になる。

普通のケースだとtestChinに対するテストコード書いて、変更があればそれを流す形になる。
上にさんざコピペが貼られたテストツールはそういうのを自動で流すツール。

テストケース流したいからfuncSとfuncBをパブリックにするというのはカプセル化
できてないし、ましてコード弄ってまでテストするのを手順化するというのは普通はやらない。

書いてる最中にコードちょろっと入れて確認するようなことはあって、それもユニット
テストといえばユニットテストだが、手法としてプロジェクト単位で公式にやるような
ものでは普通は無い。

車のブレーキ制御とかならそこまでやって欲しいが、OOとかカプセル化とはちょっと
違う話。

839 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:42:42.57 ID:M+BkbwUs.net]
> funcSとfuncBをテストするためにはコード弄らなきゃいけないし、そもそもtestChin()で
public経由でテストできるだろw

840 名前:デフォルトの名無しさん [2020/07/05(日) 06:45:32.12 ID:9F15TCk0.net]
>public経由でテストできるだろw
と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を
やっとご理解いただけたようですな。

>>768ではこんな事言ってましたが。
>当然ソースを書いて(書き換えて)テストするに決まってるじゃん



841 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:47:04.12 ID:M+BkbwUs.net]
>>810
他の言語を勉強したほうがいいぞ
どうもお前は、絶対に来るはずがない値が引数に渡された時、
そのテストしろって言ってるようだからな

「絶対にありえない値」なんだから仕様なんて作らない
他の型がない言語だったら、引数に渡されるオブジェクトなんか
それこそ無限に値なんてありえるだから

privateでも、ソースコードを修正して引数渡せるなら
そのテストをかけって言ってるようなもん

842 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:47:52.42 ID:M+BkbwUs.net]
>>812
> と、いうわけでPublicをテストすれば十分だしPrivateは(普通は)やらないという事を

頭悪そうだなw

この場合publicメソッドを呼んだらprivateメソッドを呼び出すんだから
privateメソッドのテストになってるだろ

843 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:47:57.37 ID:9F15TCk0.net]
少なくともグーグルの面接で絶対こないからテストしないとか言ったら
速攻落ちるよ。むしろ絶対こないのをやるものだからね。

844 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:49:10.31 ID:M+BkbwUs.net]
>>768

> まさかpublic・privateメソッドのテストをテスト工程でやる、
> public・privateメソッドを書いた人と別の人がやるって思ってないか?
>
> public・privateメソッドを実装中に、その作ったもののが正しく動くかどうか
> public・privateメソッドのソースを書いた人が、書いてる段階でテストするんだから
> 当然ソースを書いて(書き換えて)テストするに決まってるじゃん

と言ってますが、今の話と何の関係があるんですか?
「誰がテストするか」の話なんですが?

845 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:50:26.40 ID:M+BkbwUs.net]
>>815
だからpublicメソッド経由でテストしてるじゃんw

お前は、内部でprivateメソッドを呼び出しているから
publicメソッドのテストには、privateメソッドがそんな値を返そうが
そのテストは書かないのか?

846 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:53:15.16 ID:M+BkbwUs.net]
例えば>>805 の話だと
testChinがpublicメソッド、そのメソッドのテストとして
引数に1(なんで配列か知らんが)となるものを渡したら
Smallestが返ってくることというテストを書く

それは実際には内部でprivateメソッドを呼び出しているのだからfuncSのテストになってる
カバレッジを計測したら、privateメソッドであるfuncSの該当行は実行した(テストした)と計測される。

847 名前:デフォルトの名無しさん [2020/07/05(日) 06:54:07.51 ID:9F15TCk0.net]
え、コーディング中にちょろっとコード書いて動作確認とかを「テスト」って
呼んでたの?そりゃ噛み合わないわ。

開発手法の話をしてる時に「テストする」というからにはテストケースを書いて、
手動にしてもコードにしても実行したログくらいは残すものだが。

君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。

848 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:56:15.75 ID:M+BkbwUs.net]
>>819
どれにレスしてるの?
ユニットテスト(かつ自動テスト)の話しかしてないんだが
お前がどこを呼んでそう思ったのか
具体的に指摘してみて

849 名前:デフォルトの名無しさん [2020/07/05(日) 06:56:44.73 ID:9F15TCk0.net]
publicをテストしたらprivateも呼ばれてるからprivate単位でテストしてる!って
ブレブレやなw

publicから呼ばれないprivateなんて一体誰がなんのために書くんだよw

850 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:57:27.80 ID:M+BkbwUs.net]
>>819
> 君はメソッド作る時エッジケースやらネガティブテストやら考慮に入れつつケースを
> 書いて実行したログも残してるの?変更のたびにやるの?やらんだろ。

変更のたびって、お前変更のたびにメソッドの仕様が変わるのか?
いきあたりばったりで開発してるんだな



851 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 06:58:49.78 ID:M+BkbwUs.net]
>>821
最初からそう言ってるだろ?
ブレるも何も、最初からそう言ってる



> 私の

852 名前:回答
> 短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。
>
> ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
[]
[ここ壊れてます]

853 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:00:51.32 ID:M+BkbwUs.net]
あ?まさかprivate関数の処理のテストをすればいいのに
private関数単独ででテストしなきゃだめだって思ってるのかw

あはは、関数単位でテストするのがユニットテストだって思ってるようだな
こりゃ、お・わ・ら・い・だw

854 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:02:37.00 ID:BTTSshKd.net]
メソッド単位でテストしろって言うのが組み込みおじさんだから話にならんよ

855 名前:デフォルトの名無しさん [2020/07/05(日) 07:03:05.56 ID:9F15TCk0.net]
なんだこいつ気持ち悪い。

856 名前:デフォルトの名無しさん [2020/07/05(日) 07:07:17.25 ID:9F15TCk0.net]
日本語もjavaも通じないからどうにもならない。
突然噛み付いてくる気持ちの悪いのは100%の確率でおかしいな。

857 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:08:18.45 ID:M+BkbwUs.net]
というふうに「技術」の話にレスができなくなったら
「人」(=俺)の話にすり替えるのが常套手段な

858 名前:デフォルトの名無しさん [2020/07/05(日) 07:13:21.25 ID:9F15TCk0.net]
というかお前は誰だよ。Private単位でコード書き換えてもやるって言ってる
人間がいたからPrivate単位では通常のビジネス系ではやらないという流れなのに
突然「お前は素人だあ!」とか噛み付いてきても知らんがな。

タブもスペースもトランケートされる2ちゃんでインデントがとかくだらない
ことでマウント取りにくる暇があったらまず日本語を学べ。

以上。

859 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:21:09 ID:BTTSshKd.net]
「privateメソッド」を直接テストしろって言う人はどうするのがいいって言うの?

a 全てprivateメソッドに対しても外部にリフレクション等を使用したテストを書くべき
b privateメソッドにアクセスできるクラスなどにpublicなテストコードを書くべき
c もっと言い方法がある、こうだ!

860 名前:デフォルトの名無しさん [2020/07/05(日) 07:22:11 ID:LRfXHt7v.net]
>>830
王家秘伝の技がある。



861 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:24:08 ID:M+BkbwUs.net]
>>830

>>798 じゃねーの?w

> 完ぺきにテストしたからといって製品の完全性を保証することはできません。
> したがってテストしないほうが良いのです。

つまり

privateにしたらテストできません。だからしないほうがいいのです。
完璧にテストした所で落ちない飛行機はありません
したがってテストしないほうがいいのです

862 名前:デフォルトの名無しさん [2020/07/05(日) 07:24:58 ID:9F15TCk0.net]
しかしよくチンコのサイズテストwにマジで噛みつけるもんだ。

863 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:29:06 ID:M+BkbwUs.net]
>>833
あ、そういうテストだったの?w
コードしか見てないよw

864 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:30:17.21 ID:M+BkbwUs.net]
Chinってちんこのことだったんだな
funcSとかfuncBとかfoo、barみたいに意味がない単語じゃん
コードがクソすぎて意味が伝わらないいい例だな

865 名前:デフォルトの名無しさん [2020/07/05(日) 07:34:08.81 ID:9F15TCk0.net]
無い場合You are a womanで9以下なら小さい、16越えりゃWow!で名前が
チンテスターなんだからわかってる人間は多いだろうな。

866 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:36:44.58 ID:M+BkbwUs.net]
>>836
じゃあint型の配列のlen(長さ)ってどういうこと?
配列がnullなら女で配列が複数あれば男?
何が複数なの?

867 名前:デフォルトの名無しさん [2020/07/05(日) 07:36:59.87 ID:9F15TCk0.net]
ちなみにfuncなんとかというのは君の好きなグーグルあたりでも例ではよく使うわな。
BとSもbigとsmallだろうと英語得意なら当たりがつくけどね。なぜABじゃなくてBS
なのか。そもそもoutに出てんだし。

868 名前:デフォルトの名無しさん [2020/07/05(日) 07:38:39.33 ID:9F15TCk0.net]
>>837
行があればChinkoクラスを作るとこだがスペースいらないで
intじゃなくてヌルポが出るものがarrayだからそれの長さで表してるだけだよ。

869 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:44:01.87 ID:M+BkbwUs.net]
> intじゃなくてヌルポが出るものがarrayだから
・・・

Java知らんのか?整数かつオブジェクトでも使えばいいじゃないか
具体的には教えてやらんよ。自分で勉強しな

870 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:46:53.71 ID:wXNAUX4A.net]
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね



871 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:49:38.56 ID:y7MN16M9.net]
>>824
いや、やってもいいだろ
お前がやりたくないのは「たまたま」VisualStudioでやりにくいってだけの理由だろ
早く死んでね

872 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 07:53:17 ID:M+BkbwUs.net]
こういう事やって、NULLチェックが4倍に増

873 名前:えたー、テストも増えたーって
言ってるやつがいるなんて驚き。馬鹿かとw 以下擬似コードな

public func(value) {
 // valueのNULLチェック
 処理
 処理
 処理
}

public func(value) {
 // valueのNULLチェック
 foo(value);
 bar(value);
 baz(value);
}
private foo(value) {
 // valueのNULLチェック
 処理1
}
private bar(value) {
 // valueのNULLチェック
 処理2
}
private baz(value) {
 // valueのNULLチェック
 処理3
}
[]
[ここ壊れてます]

874 名前:デフォルトの名無しさん [2020/07/05(日) 07:56:16 ID:LRfXHt7v.net]
プロは俺だけだったか。

875 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:03:19.96 ID:FjEgCO9/.net]
そもそもprivateメソッドだからテストしないとか言ってるキチガイにまともな返答なんかいらない

そんなのどこの職場でも認められるわけないから
publicメソッド通したprivateメソッドに自分が想定したケースの値が全部入る保証なんかない
ある特定のケースのみそのメソッドの処理が欲しいときにしか呼んでないことあるだろ
つまりメソッド自体のテストはできてないしその方法でコードカバレッジ100%は無理だし
そもそもpublicから呼び出したprivateのコードカバレッジを100%にするなんて
作業が狂気過ぎてまともな脳みそ持ってるやつならやる前に無駄って理解できる

バカは早く死んでね

876 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:06:02.24 ID:M+BkbwUs.net]
そもそもprivateメソッドだからテストしないとか言ってるキチガイには
この言葉を授けよう

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つの考え方があります。

パブリックメソッド経由でテストする
別クラスのパブリックメソッドとする
テスト対象の可視性を(やや)上げる
プライベートのまま、リフレクションでアクセスしてテストを書く
パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。テストできているか不安があるならテストカバレッジを確認しましょう。

877 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:10:31.93 ID:FjEgCO9/.net]
>>846
そいつプロジェクトで仕事したことあるのか怪しい部類じゃね?

878 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:16:36 ID:IUsMolpf.net]
publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?

879 名前:デフォルトの名無しさん [2020/07/05(日) 08:25:21.85 ID:9F15TCk0.net]
public通したprivateは単体としては怪しいというのはその通りだけど、
そもそも呼ばれないprivateを書くバカはいないわけで、条件があるから
書いてんだよね。で、条件をpublicの段階でテストするわけだから
ほぼ通ってるわけだよ。

上のチンコテストだとnullから16まで流せば全部通る。

違いは、上の例でprivateにnull突っ込んだらヌルポだわな。そこをテストするのは
コード変えなきゃいけないし、OOの大規模ビジネスソフトではそういうことは
やらない。それをやらなきゃいけない環境なら関数型でもいけるはず。

880 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:31:48.84 ID:ckfZDtdO.net]
>>849
できない時点でこの話は終わりさ
やらないわけには行かないんだから
90%できてても残り10%をどうやってもやる方法がないんだから
その方法はどうやっても採用できないし
わざわざする理由もない
別の方法ではできるんだから



881 名前:デフォルトの名無しさん [2020/07/05(日) 08:33:02.53 ID:9F15TCk0.net]
>>840
君のがpublic privateに関しては言ってることは正しいんだが
底抜けのバカだなあ。

整数かつオブジェクトwこのレベルの人と話してたのかw

はあ。。。

なんかいやになっちゃった。

882 名前:デフォルトの名無しさん [2020/07/05(日) 08:35:22 ID:9F15TCk0.net]
>>850
いやだから16まで流せば全部できてるけど。

ビジネス系ではやらないよ。組み込みで全部
テストしなきゃいけないというならわかるので
すれば良い。ただOOの手法とは違う。

デベロッパー千人のところでやってるの?
やってないでしょ?

883 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:13:35 ID:iCbhqS6F.net]
通ってればいいっていうなら単体テスト全否

884 名前:閧セろw
結合テストなりで全部やりゃいいって話になる。
[]
[ここ壊れてます]

885 名前:デフォルトの名無しさん [2020/07/05(日) 09:23:53.74 ID:9F15TCk0.net]
>>853
だからその線引きをどこでやるのかっていう事で、
privateまで全部テストケース書いてエッジケースもネガティブも
全部やるなら関数型で良いんだよ。

別にバカにする気は無いし、関数型のが難しい場面もたくさんあるが、
大規模(デベロッパーだけで数百人)のOOプロジェクトやった事ある?

886 名前:デフォルトの名無しさん [2020/07/05(日) 09:30:39.94 ID:9F15TCk0.net]
上のチンコの例で言えば、funcSとfuncBのテストをテストケース書いて
コードを書き換えた上でやってドキュメントなりログなりで残すの?

だったらpublicでやれば良いし、そうやってpublicにするなら関数型でも
おんなじ事でしょ。

チンコがnullなのか16以上そこそこでかいのかまでしか関係ないわけで
privateがnullをハンドリングしてないとか無駄なんだよ。もちろん
命に関わるようなところではそれくらいの厳格さが求められる場合も
あるだろうが、普通のビジネスソフトではそこまでやらない。

他のチームが関わる場所を少なくするためにカプセル化するわけで、
そんな全部publicにしたら意味ないんだよ。

887 名前:デフォルトの名無しさん [2020/07/05(日) 09:41:54.39 ID:LRfXHt7v.net]
弊社はC2カバレッジ100%未満は出荷できませんけどね。

888 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:42:35.87 ID:j0cUMVMZ.net]
>>854
線引じゃねーよクソ野郎
publicでたまたま呼ばれた1パターンと
privateの網羅テストが同じになってたまるかアホかよ
クラスのなかにあるのでpublicから呼ばれたときだけ動けば
ルーチンとして不出来でもOKなんてあるわけないだろ
お前はクソだからもう死ねよ

889 名前:デフォルトの名無しさん [2020/07/05(日) 09:45:43.25 ID:9F15TCk0.net]
>>857
まあじゃあ君はprivateまでテストケース書いてやっとけば良いんじゃない?
誰も止めてないし。大規模ビジネスソフトでは世界的に言って普通ではないというだけで。

僕はあんまり関わることのないレベルの世界だけど、まあ多分一生関わらないので
君が良いならそれで良いと思うよ。

890 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:51:39.34 ID:BTTSshKd.net]
>>857
君は大変なんだねwテストがんばれーwww



891 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:54:43 ID:bzHIXl0a.net]
>>858
落としどころとしてはそんなところで良いんじゃね?
問題なのは「privateはテストするべきではない」なんて変な教義を押しつける人の方なんで。

892 名前:デフォルトの名無しさん [2020/07/05(日) 10:02:55.49 ID:9F15TCk0.net]
>>856
正直QAやってたのは随分前の話だから最近のQAツールは知らんけど、
privateが全部通ってれば100%なわけで、そもそもprivateがある理由は
使われるためなんだから普通は誰も一回も使ってない場合なんかはないわな。
レベルが高くなると通らないケースも出るだろうが。だから線引きってこと。

チンコテストならnullから16までやれば100%通ってる。privateかpublicかって
のは関係ない。ただしprivateはnullをハンドリングしてない。それをどうするかって話。

893 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:03:22.77 ID:iCbhqS6F.net]
>>854
お前こそ大規模プロジェクトやったことないだろw
それだけ大規模だと逆にテストコード書かんわ(nttデータとかアクセンチュアとかな)
そんなクソプロジェクトを引き合いに出されても知らんわw

894 名前:デフォルトの名無しさん [2020/07/05(日) 10:05:36.79 ID:9F15TCk0.net]
>>860
「べきでは無い」とは思わないけど、privateをデベロッパーの個人的な
チェックを超えてテストすることを求められるとしたら、何かプロジェクト的に
おかしいとは思う。

895 名前:デフォルトの名無しさん [2020/07/05(日) 10:08:05.85 ID:9F15TCk0.net]
>>862
だから僕もNTTデータとかは知らんと上に書いてるけれども。

アメリカの大規模ソフトは中の人だし、他の会社のデベロッパも何人も知ってるので、
実際にアメリカの業界は知ってる。

君の「クソブロジェクト」ではないプロジェクトは会社名は出す必要はないが
例えばアメリカのERPとかそのレベルでなんなの?

896 名前:デフォルトの名無しさん [2020/07/05(日) 10:09:56.64 ID:9F15TCk0.net]
だいたい質問を質問で返す人は答えるのに不都合がある人。

数百人のデベロッパーのプロジェクトをやったことなくても全く問題は
ないんだが(ロッキードのミサイルの制御の人とか数百人もいないし

897 名前:)、
「あるよ」とは帰ってこない。
[]
[ここ壊れてます]

898 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:15:56.23 ID:bzHIXl0a.net]
>>863
だからそれは別の話なんだからさ。
「privateなら必ずしも単体テストする必要はないけどやりたいならやれば?」
これでいいじゃん。

899 名前:デフォルトの名無しさん [2020/07/05(日) 10:19:00.51 ID:9F15TCk0.net]
>>866
ちょっと弱いかな。「普通はやらんけどやりたかったりやる必要があるならやれば?」

くらい?privateを全部テストケース書いてエッジやネガティブやるとなると多くの場合
サグラダファミリアになるし、普通はやらない。

でもやりたいならやれば良いとは思うのでだいたいそういう感じか。

900 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:31:49.01 ID:BTTSshKd.net]
組み込みおじさんはそこに義務感を感じ、他者に強要するのだろう
難儀なこった



901 名前:デフォルトの名無しさん [2020/07/05(日) 10:37:41 ID:9F15TCk0.net]
組み込みとかだと多くの場合そもそもOOあんまりいらんと思うのよね。

人工呼吸器の制御とかだときびしくやらないといけないのはわかるし、
やってない人工呼吸器とか俺も付けられたくないけどさw

OOのメソッドとかはちょっと違う話だわな。カプセル化とかは数百人になると
生きてくる。個人的には自分一人の個人プロジェクトでも使うけど。
数年後にまたやる羽目になったりした時に楽なので。

902 名前:デフォルトの名無しさん [2020/07/05(日) 10:45:19 ID:MQ9nuMmc.net]
>>847
それは僕も思ってた
机上の空論っぽいんだよね

903 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:53:33 ID:kFjTOHVy.net]
>>867
どこに差があるのかよくわからんが、どちらにしても一行目は問題ないにしても
二行目はここに存在しない敵を攻撃している印象。
いちいち関係ない話を絡めなくてもいいじゃんと思うが、二度も書くということは
そっちが主張したい本音ということかな?

904 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 10:55:30 ID:sn+7aSX4.net]
OOPは理解している人とOOPを理解していない人が単体テストについて不毛な争いをするスレかな?

905 名前:デフォルトの名無しさん [2020/07/05(日) 10:58:45.46 ID:9F15TCk0.net]
>>871
いや、元々がpublicじゃなくてprivate単位でやれという話からなんだからその話だよ。

publicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?

逆にprivateで一度も通ってない部分があっても良いじゃんとも言っていないような。
if文書くのに絶対通らない物を書く人いるわけないでしょw

ただ、公式なテストとして、privateのレベルでテストケース書いてログ残してコード
書き換えてコンパイルし直してやるというのは少なくとも普通のビジネスのソフトとしては
一般的なベストプラクティスではないし普通はアメリカの大手一流ではやらないということ。
例外はあるとしても。

906 名前:デフォルトの名無しさん [2020/07/05(日) 11:03:24.23 ID:LRfXHt7v.net]
土台が腐ってたら。
全部検査するほうが楽。

907 名前:デフォルトの名無しさん [2020/07/05(日) 11:04:34.60 ID:9F15TCk0.net]
幸いそういうのには当たったことはないw
上に書いたように例外は認める。

908 名前:デフォルトの名無しさん [2020/07/05(日) 11:09:23.64 ID:MQ9nuMmc.net]
アメリカの大手一流ってどこだろ?

909 名前:デフォルトの名無しさん [2020/07/05(日) 11:11:04.89 ID:MQ9nuMmc.net]
アメリカや大手や一流が正しいとは限らないけどね
ボーイングの飛行機があんなことになってるように

910 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:11:13.65 ID:9F15TCk0.net]
まあ会社的にはプログラマなら全員知ってるとこ。それ以上は言わん。



911 名前:デフォルトの名無しさん [2020/07/05(日) 11:13:19.35 ID:9F15TCk0.net]
>>877
だからボーイングの制御系とかはそもそも全然別の話。

もちろん正しいとは限らないけど標準なのは確かだわな。
日本初のOOより優れたこういうメソッドがある!というなら
もちろん喜んで聞くけどね。

912 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:14:37.74 ID:kFjTOHVy.net]
>いや、元々がpublicじゃなくてprivate単位でやれという話からなんだからその話だよ。
>ublicでprivateの分岐通ってるなら良いじゃんといなら誰も否定していないのでは?

そう、それが一致しているならいちいち関係ない話を絡めなくてもいいんでは?
public経由のテストで十分網羅できるのにそれでもprivateメソッド単位のテストが
必要なんて主張している人いたかな?そこに誤解があるんじゃないの?

913 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:15:16.65 ID:9F15TCk0.net]
>>880
いるから揉めてるんすよ。

914 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:16:31.89 ID:M+BkbwUs.net]
>>881
それはどれ?レスを教えて

915 名前:デフォルトの名無しさん [2020/07/05(日) 11:17:47.72 ID:MQ9nuMmc.net]
アメリカの大手の一流がそうしてるから正しいのだという権威にすがった論理を
展開されておられたのでその会社ってど

916 名前:ソらの会社なのって聞いてみたんだけど
そんな会社本当にあるの?
[]
[ここ壊れてます]

917 名前:デフォルトの名無しさん [2020/07/05(日) 11:18:34.49 ID:MQ9nuMmc.net]
t_wadaの次はアメリカの大手一流か、議論の根拠が権威ばっかりやな

918 名前:デフォルトの名無しさん [2020/07/05(日) 11:21:40.50 ID:9F15TCk0.net]
例えばこの方。

848デフォルトの名無しさん2020/07/05(日) 08:16:36.05ID:IUsMolpf
publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?


メソッド全部ちゃんとエッジケースやネガティブまでやれって業界があるのは
わかるし、必要だとも思うけど、それはOOのビジネス系だでは普通やらないということを
言ってただけなんだけど、バカだアホだお前は素人だといろんな方面から変に噛みつく
やつばかりでもう僕はいやになっちゃった。この人が噛み付いてきたということではないよ。

もちろんまともな人のが多いんだろうけどおかしな人のが目立つからね。

919 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:22:22.08 ID:/MeFbFCW.net]
いちいち論点ずらすな。
お前ら、何で争ってるんだよ。

920 名前:デフォルトの名無しさん [2020/07/05(日) 11:23:41.69 ID:MQ9nuMmc.net]
OOのビジネス系ってどんな仕事?
そんないい加減なことやっていい仕事ある?
トラブってもうちうちでなーなーで済むようなBtoBの仕事?
自社内でしか使わないシステムとか?



921 名前:デフォルトの名無しさん [2020/07/05(日) 11:24:18.36 ID:9F15TCk0.net]
アメリカの大手一流が不満なら自分の業界の実例をあげたらいかがだろうか?

privateをテストケース書いて全件やってるとこなんておそらくないぞ。あるというならあげれば良いだけの話。

テストツールどうやって動いてるねん。コード自動で書き換えてコンパイルし直しか。話がおかしいのすぐわかるだろ。

922 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:24:52.69 ID:/MeFbFCW.net]
まず、このスレの連中は議論する前に論理学を学ぶことをお勧めするよ。
あと、詭弁について調べろ。

923 名前:デフォルトの名無しさん [2020/07/05(日) 11:25:24.17 ID:MQ9nuMmc.net]
>>888
アメリカの大手一流ってどこの会社なん?

924 名前:デフォルトの名無しさん [2020/07/05(日) 11:25:52.62 ID:9F15TCk0.net]
>>887
だからアメリカ製のパッケージとかコンサルとの間でよく揉めてるだろ。これは「バグ」じゃないとか。DBだってよくある話だわな。

君はどんな仕事なの?

925 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:26:35.07 ID:9F15TCk0.net]
>>890
君の会社はどこなん?

926 名前:デフォルトの名無しさん [2020/07/05(日) 11:27:26.12 ID:MQ9nuMmc.net]
>>891
アメリカ製のパッケージとかコンサルとの間でよく揉めてる仕事なん?
なにそれ? 何言うてんの? 何の仕事してるんよ

927 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:27:47.35 ID:kFjTOHVy.net]
>>885
それは網羅してないからダメという意見では?
そこに反論するならば「privateのテストを強制すべきではない」ではなく
「public経由でも網羅することは可能」ではないかね?(できるなら)

928 名前:デフォルトの名無しさん [2020/07/05(日) 11:27:51.75 ID:9F15TCk0.net]
>>882
>>848
デフォルトの名無しさん2020/07/05(日) 08:16:36.05ID:IUsMolpf
publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?

929 名前:デフォルトの名無しさん [2020/07/05(日) 11:28:29.72 ID:MQ9nuMmc.net]
>>892
アメリカの大手一流でこうしてるから、こうするのが正解なんやー
言うてたからアメリカの超一流ってどこなんよ? と聞いたんやけど
なんで言えへんの

930 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:28:59.86 ID:YdQ981ul.net]
>>870
新しい理論や手法を提唱する人には良くあることだと思うけど、その理論はある前提、ある側面では正しいけど、常に無条件に適用することは正しくないと本人は分かっていて、敢えてそういうことはわざわざ詳しくは説明しない。自分の論が有用な物だと主張したいがため、嘘はつかない範囲で相手が勝手に誤解してすごいと思わせるような物言いをする。
で、その理論に感銘を受けた人の一部が、理論の表面的な効能だけをありがたく受け取って問題点や前提条件などは正しく理解しないまま、受け売りの知識を他所で披露する。
そこで議論になると、本質をちゃんと理解してないまま自説を擁護しようとするから、無理が生じたり話が噛み合わなかったりする。
という流れでイマココなのかなと思う。



931 名前:デフォルトの名無しさん [2020/07/05(日) 11:29:53.38 ID:MQ9nuMmc.net]
>>897
なるほどね、わかる気がする

932 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:29:56.16 ID:M+BkbwUs.net]
大手一流の名前を言うだけで逃げそう(笑)

933 名前:デフォルトの名無しさん [2020/07/05(日) 11:33:32.02 ID:MQ9nuMmc.net]
足ガクガクになってまうよー

934 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:36:47.20 ID:Ua1+WoRk.net]
まぁ、単体テストでprivateを直接呼び出すのは変な話だけどな。
デバッグならともかく、単体テストでリフレクションによるprivate強制実行とか反則でしょ。
デバッグで許される理由は、バグを見つける可能性があるから。
単体テストで駄目な理由は、テストの合否判定が不当に変わる恐れがあるから。

というのが自分の見解だが、皆さんはどう?
スレが加速してからの途中参加だから、自分の発言に自信ないけど。

935 名前:デフォルトの名無しさん [2020/07/05(日) 11:37:26.26 ID:9F15TCk0.net]
>>894
そもそもpublicを経由するのが網羅してないから、経由せずにprivate単位で
コード書き換えてテストやるべきという主張自体がOO的にはおかしいわけです。

見せたくないからprivateなわけで。

もちろんデベロッパー個人でコード入れて確認することはあるだろうけれども、
開発手順としてテストケース書いてログ残してというのは違う。

public経由で内部を網羅してるかしてないかは知ったことではない、というのが正解。
上の例で言えばfuncBやfuncSがnullをチェックしてようがしていまいが他のチームには
関係ないわけです。入り口でnullチェックしてれば。

個人的にはサイズがでかければprivateでも入れるけども、それをテストケース書いて
ログ残してと要求されたことはないし、普通はされんはず。少なくともアメリカでは。

936 名前:デフォルトの名無しさん [2020/07/05(日) 11:38:33.09 ID:MQ9nuMmc.net]
GoogleであってもMicrosoftやOracleもバグのないソフトは作れないし
銀の弾丸的な手法があるわけもなく、アメリカ、大手、一流という箔付けに頼ってるだけでしかない

937 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:41:45.16 ID:Xwol7cCi.net]
せっかく匿名で議論できるのに
「アメリカの大手一流」とか言い出しちゃうところが哀れやわ
>>805の下痢便コード出た時点でスレ終了やろ普通

938 名前:デフォルトの名無しさん [2020/07/05(日) 11:43:37.87 ID:9F15TCk0.net]
>>896
君の会社はどこなの?

アメリカ大手1流でブライベート単位でのテストケース書いたりした網羅的なテストは「していない」という証明は悪魔の証明だから無理だけど。全社で働いたわけじゃないし。

逆にアメリカ大手1流でやっているという証明は一件出すだけなのでGAFAのどこでも、マイクロソフトでもアドビでも簡単にできるのでぜひどうぞ。

ただ、なんかコピペで爆撃されたオートメーションツールでは、特にコンパイル必要な言語は、直接privateテスト出来ないよ。当たり前の話。

939 名前:デフォルトの名無しさん [2020/07/05(日) 11:45:23 ID:MQ9nuMmc.net]
>>905
アメリカの大手一流ってどこなんよ?

940 名前:デフォルトの名無しさん [2020/07/05(日) 11:45:48 ID:MQ9nuMmc.net]
その会社がやってるからすごいんでしょ、はよ教えてやー



941 名前:デフォルトの名無しさん [2020/07/05(日) 11:47:16 ID:MQ9nuMmc.net]
もう何でもええから言うて、そしたら僕がすごーいって言うから、もうそれでええやんか

942 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:49:23 ID:9F15TCk0.net]
また別IDが下痢便とか発狂し始めた。

お前はほんとにウンコとかそのレベルのことが好きだな。

943 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:51:02 ID:9F15TCk0.net]
>>907
やって「ない」という話だけど。
まず日本語学んでやー よろしくなー

944 名前:デフォルトの名無しさん [2020/07/05(日) 11:51:58 ID:MQ9nuMmc.net]
>>910
アメリカの大手一流ってどこなんよ?

945 名前:デフォルトの名無しさん [2020/07/05(日) 11:52:54.88 ID:MQ9nuMmc.net]
たぶんアップルは単体テストやってない、SSLでアホなバグだしてたから、あの会社適当だわ、しらんけど

946 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:53:26.19 ID:9F15TCk0.net]
>>911
君が自分の名刺でもあげたら考えとくわー

947 名前:デフォルトの名無しさん [2020/07/05(日) 11:55:12.71 ID:MQ9nuMmc.net]
>>913
アメリカの大手一流ではそれが普通なんやーおりゃーってイキっておられましたよね
だから聞いたのに、教えてくれないなんて酷いです、あんなにイキってたのに酷いです

948 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:55:58 ID:M+BkbwUs.net]
>>902
> そもそもpublicを経由するのが網羅してないから、経由せずにprivate単位で
> コード書き換えてテストやるべきという主張自体がOO的にはおかしいわけです。

誰がそんなこと言ってるの?

少なく遠も俺は
1. privateはpublic経由でテストすれば十分
2. もしpublic経由でテストできないほど複雑なら、そもそも設計がおかしい
3. 設計の問題を修正して、責務を分割すれば、自然にpublicになるはず
と言ってる。

テストするためにpublicにするのではなく
問題がある設計を直せばpublicになる。と言っている。

949 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:55:59 ID:9F15TCk0.net]
>>914
劣等感がひどいな君は。まずはカウンセラーに
かかりなさい。OOの話はそれからしようか。

950 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 11:58:34 ID:9F15TCk0.net]
>>915
いや だ か ら この人。

848デフォルトの名無しさん2020/07/05(日) 08:16:36.05ID:IUsMolpf
publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?



951 名前:デフォルトの名無しさん [2020/07/05(日) 11:59:21 ID:MQ9nuMmc.net]
アップルのSSLのバグはこれね

Apple史上最悪のセキュリティバグか、iOSとOS XのSSL接続に危険すぎる脆弱性が発覚──原因はタイプミス?
https://appllio.com/20140223-4899-apple-ios-bug-ssl-goto-fail

952 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:06:18.88 ID:wqV8YbJ4.net]
IUsMolpfに文句言えばいいのに。

953 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:07:47.85 ID:kFjTOHVy.net]
>>902
ああつまり、重要度は関数仕様>ブラックボックステスト>ホワイトボックステストだから
テストのために仕様変更はすべきでないという主張か。
それはわからんでもない気はするけど、そういうウォーターフォールが絶対というわけでもないしな。

その是非はさておき、そこが論点なら例えばリフレクションのような形でテストできたり、あるいは
テスト仕様を書く本人が関数仕様も決定することができる条件なら全然問題ないわけだ。

954 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:07:48.24 ID:9F15TCk0.net]
>>918
正直iOSは全然知らんけどこれは酷いなw
Public Private以前にStaticだからなんにしても直接テストする部分だな。

955 名前:デフォルトの名無しさん [2020/07/05(日) 12:08:47.51 ID:MQ9nuMmc.net]
>>921
せやろw

956 名前:デフォルトの名無しさん [2020/07/05(日) 12:13:26.38 ID:9F15TCk0.net]
>>919
横から狂犬が噛み付いてくるんだよ。

>>920
ウォーターフォールは関係ないし、重要度をつけてるわけでもないけれども、
普通はprivateはソースコード変えてまでテストするものではないというだけの単純な話。

そもそも「テスト」と言ってもいろんな段階があるわけだし、「ユニットテスト」にしても
プロジェクトによって意味が違うわけで。

なんにしてもprivateを(例外はあるにせよ)全部公式な形でテストしろというのは
OOの手法のプロジェクトでは「普通は」やらんというだけなのになんでこんな揉めるのか。

957 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:16:58.82 ID:kFjTOHVy.net]
>なんにしてもprivateを(例外はあるにせよ)全部公式な形でテストしろというのは
>OOの手法のプロジェクトでは「普通は」やらんというだけなのになんでこんな揉めるのか。

全部やれなんて主張している人がいないから。

958 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:19:09.22 ID:9F15TCk0.net]
>>924
だからいるだろうが。本人なの?

848デフォルトの名無しさん2020/07/05(日) 08:16:36.05ID:IUsMolpf
publicを通した範囲でしかできないprivateのテストは網羅されてなく
メソッドの単体テストとして十分なテストは行われていません
あなたの意見は採用できません
できれば実際のプロジェクトを5つぐらい経験されてはいかがでしょうか?

959 名前:デフォルトの名無しさん [2020/07/05(日) 12:20:23.64 ID:MQ9nuMmc.net]
>>805
こう書いた方が良いと思うの
https://paiza.io/projects/mPhqBnYZnQukkW6HY9LmOQ

960 名前:デフォルトの名無しさん [2020/07/05(日) 12:21:30.51 ID:MQ9nuMmc.net]
privateメソッドが正しいことは確認する、その上でpublicのメソッドが正しいかテストするって感じ



961 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:30:30.98 ID:kFjTOHVy.net]
>>925
これが「privateのテストを全部やれ」に読めてしまうのか。そこが原因だな。

962 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:32:35.17 ID:M+BkbwUs.net]
>>923
> ウォーターフォールは関係ないし、重要度をつけてるわけでもないけれども、
> 普通はprivateはソースコード変えてまでテストするものではないというだけの単純な話。

テスト中に設計の問題が発覚しても
ソースコード書き換えないの?

ソースコード変えてまでテストするものではないというけど
なんでソースコードを作成&自分が書いたそのコードをテストしてるときに
自分が作成してるソースコードを変えたらだめなの?

963 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:36:24.73 ID:M+BkbwUs.net]
普通の開発だったら

0. なにかの修正を行う必要が発生する
1. その修正のためにソースコードを修正する
2. 修正したコードが正しいかテストする
3. 1〜2を繰り返し修正したコードに問題がなければ開発完了
4. 統合テストとかより大きなテストを行う

でしょ?

public・privateメソッドをテストしたいっていうのは
この1〜2のフェーズで発生することなのに、
なんでテストがやりにくいなと思ったときに
ソースコードを修正したらだめなの?

964 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:38:58.81 ID:wqV8YbJ4.net]
>>926
スマホでも見やすくなったな。
あー、なるほど。

でも、サンプルみたら少し混乱してきた。
自分はクラスの単体テストをイメージしてたけど、まさか、Mainクラスの中に定義されたprivateメソッドの単体テスト(?)の話をしていたとか?
もう単体テストの意味が少し崩壊してきたが...

965 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:46:16.73 ID:BTTSshKd.net]
どういう流れなのか追うのもめんどいなw

966 名前:デフォルトの名無しさん [2020/07/05(日) 12:52:51.86 ID:9F15TCk0.net]
>>928
そもそも300くらいからそういう話だから。

privateはpublicからアクセスして全部網羅できるから問題ないなんて
誰も否定してないしそういうことならもともと荒れてない。

>>929
あのさ、例えばバグが発生したらコード書き換えるのは当たり前だよね?
そんな話では当然ないよね?

privateを直接テストするためには外部から呼べないのだから、呼ぶためには
クラス内に書くしかないわけだよ。で、ソースに書き込んでクラス内に書いて
テストしたあとまたそのコードを取り除いてとかするの?それをドキュメント化
する?

普通はコード書いてる最中にテストコードを入れて確認するのは公式なテストの
メソッドでは無いし、それをドキュメント化したりするのは求められないと
思うが。

>>926
ワロタw

けどそうじゃ無い。privateで直接アクセスした時のみnullがでるということ。
intじゃ無いのは例のためにわざとそうなっている。あとchinTestが呼ばれてないし、
OptionalにisEmpty無いのでは。

967 名前:デフォルトの名無しさん [2020/07/05(日) 12:54:31.17 ID:9F15TCk0.net]
nullがでる->ヌルポがでる

968 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:54:57.72 ID:M+BkbwUs.net]
>>933
> privateを直接テストするためには外部から呼べないのだから、呼ぶためには
> クラス内に書くしかないわけだよ。で、ソースに書き込んでクラス内に書いて
> テストしたあとまたそのコードを取り除いてとかするの?それをドキュメント化
> する?

誰がそんな事するって言ってんの?
お前が想像が間違ってる

969 名前:デフォルトの名無しさん [2020/07/05(日) 12:56:01.25 ID:MQ9nuMmc.net]
>>933
えっとごめんそのnullの問題は設計が下手なだけだと思ってて、設計を見直すべきかと
privateのテストをどうしますかの例として出したので問題ないっしょ
君はこのプログラムをどうやってテストするん?

970 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:56:34.25 ID:3WDjCjSx.net]
よくもまあ粉薬をオブラートで包むような話でこれだけのレスで盛り上がれるなー



971 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:57:28.17 ID:M+BkbwUs.net]
いやーびっくりだw

設計がおかしいから設計を修正するって話をしてるのに
設計を修正した後に修正前に戻すなんでやらないだろ!って言われちゃった(笑)

だーれも修正前に戻すなんて言ってないの
おかしい設計を修正して「開発完了」なの

972 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 12:57:46.31 ID:JiRnWiGC.net]
たぶん、スレタイがスレタイだから、手続き型でプログラムを書く人のイメージする単体テストとオブジェクト指向プログラマーのイメージする単体テストで齟齬が生じているのでは?

そりゃ、サンプルみたいに関数が定義されていたらprivateだろうと関数はテストするべきって発想になるのは不思議じゃないし、オブジェクト指向に基づき設計されたクラスを単体テストする話であれば、privateをテストって、どういう意味なんだろって不思議がるだろうよ。

そして、たぶん、サンプルコードに対して真っ先に突っ込むべき点はOOPでも何でもないコードという点だと思うのだが、そこはいいのかな?

973 名前:デフォルトの名無しさん [2020/07/05(日) 12:57:47.49 ID:MQ9nuMmc.net]
OptionalにisEmptyが無いというのは何言ってるのかわからない
本当になかったらコンパイルに失敗するよ

974 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:00:08.78 ID:M+BkbwUs.net]
>>939
一人privateがテストしづらいからpublicに変更してテストして
"元に戻す" 話をしてるやつがいるみたいだが(笑)

975 名前:デフォルトの名無しさん [2020/07/05(日) 13:00:23.50 ID:MQ9nuMmc.net]
>>939
僕はOOPのコードだと思ってるよクラスが定義されてるからね
君が思うOOPのコードはこれだっていうのを君に出していただきたいかな

976 名前:デフォルトの名無しさん [2020/07/05(日) 13:00:34.24 ID:9F15TCk0.net]
>>935
もうお前は良いからスレを読め。

>>936
いやそうじゃなくて、publicで呼ばれるprivateを直接テストするのかという
話なので、そのためにわざわざヌルポになるように書いてるわけで、staticなら
そのままメソッド呼べば良い話。


もうこの板嫌。。。

977 名前:デフォルトの名無しさん [2020/07/05(日) 13:03:47.50 ID:MQ9nuMmc.net]
>>943
ヌルポになるような設計はおかしいのがそれはコーディング力の稚拙さゆえ。
だから、いまはそのヌルポの問題は置いておこう。
さて、君はこのプログラムをどうテストするのか教えて欲しいっていうのが僕の要望だよ。

978 名前:デフォルトの名無しさん [2020/07/05(日) 13:06:51.97 ID:9F15TCk0.net]
>>944
いやだから そ う じ ゃ な く て

privateでだけヌルポが出るように書いてるの。privateとpublicのテストの話だから。
出さないだけならnullチェック入れれば良いだけの話だが、そういうことじゃ無くて
わざと出るようになってるの。

そのプログラムならstaticなのだからそのまま呼べば良いし、
chinTestも呼ばれてないけどpublicなのだからテストしたければそのまま
呼べば良い話。

979 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:10:29.02 ID:JiRnWiGC.net]
>>942
スマホだからインデントとか崩れは許してほしいが

class USBMemory : Storage{
private:
色々定義
public:
USBMemory(ポート設定)
void open(string file)
string read()
void write(テキスト)
void close()
}

文法適当だが勘弁して

組み込みおじさんにも分かりやすいように、
組み込みを例にするが、
OOPってこんな感じのコードでしょ。


で、ユーザーは

USBMemory usb;
usb.open(ファイル指定)
text = usb.read()
usb.close()

こんな風に内部実装を知らなくても呼べる。

980 名前:デフォルトの名無しさん [2020/07/05(日) 13:11:36.99 ID:MQ9nuMmc.net]
>>945
わざと出るように入れたのが現実の実装と乖離してるので、わざと入れる意味が無いので
気にする必要ないですよってこと

君はpublic経由でprivateをテストするんだって立場ですよね
君はどうテストを書きますかってことを教えて欲しいです
君の元のコードでもいいですよ、僕が変更したコードでも良いですよ
君はどうprivateをテストしますか?



981 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:12:18.35 ID:JiRnWiGC.net]
残念ながら、クラスを使えばOOPという認識は間違い。

982 名前:デフォルトの名無しさん [2020/07/05(日) 13:13:15.86 ID:MQ9nuMmc.net]
>>948
僕は君の認識が間違いだと思ってる、君の方が残念

983 名前:デフォルトの名無しさん [2020/07/05(日) 13:13:55.43 ID:MQ9nuMmc.net]
クラスの存在こそがOOPの本質

984 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:13:59.63 ID:JiRnWiGC.net]
え、そこに反論されるの?
何このスレ。

985 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:14:57.78 ID:JiRnWiGC.net]
JavaScriptとかpythonとか、元々、クラスはサポートしていないのに?
プロトタイプベースはオブジェクト指向じゃないとでも?

986 名前:デフォルトの名無しさん [2020/07/05(日) 13:17:49.53 ID:MQ9nuMmc.net]
>>951
えじゃねえよ、なめんなよ

987 名前:デフォルトの名無しさん [2020/07/05(日) 13:18:05.20 ID:9F15TCk0.net]
>>947
意味がないどころか、そこにしか意味がないんだよ。
それ「だけ」を見せるためのコードなんだから。staticとか
なら話の流れとなんにも関係がないのでそれこそ意味がない。

でもあえていうなら、そもそもまず連打が好きじゃ無い。自分ならループにするけど、
それだけでもない。

まず壊すようにテストすんの。null入れたり、変なオブジェクト入れたり。

で、privateをテストするんじゃなくて、要件通り動くかどうか。nullからint maxまで
回して、要件通りの結果が全てでくるか。変なオブジェクト入れたらどうか。
そういう感じ。

でも最初に書いたように、publicとprivateの話なんだから、そこで
エラーが出るか出ないかがないとこのスレ的にはなんの意味もない。

988 名前:デフォルトの名無しさん [2020/07/05(日) 13:18:37.20 ID:MQ9nuMmc.net]
>>952
JavaScriptにもPythonにもクラスあるよ
クラスがオブジェクト指向の本質だと気づいたから追加されたんじゃないでしょうかねー

989 名前:デフォルトの名無しさん [2020/07/05(日) 13:19:41.30 ID:9F15TCk0.net]
クラスの存在はOOPの大事な部分だけど、OOPの言語を使ってもほとんどOOPでは
無いというのはよくある話。巨大クラス一個とかだと頭を抱える。

990 名前:デフォルトの名無しさん [2020/07/05(日) 13:22:07.34 ID:MQ9nuMmc.net]
>>954
現実にありえない実装見せて、ほらね、と言われても僕は戸惑うばかり
そんな現実にありえないことを想定するからまずいんじゃないですかね
現実にそういうコード書いてるんじゃないかと僕はちょっと君のコーディング力を
疑わしく思ってきたのだけれども

public経由で、標準出力に出力するようなprivateコードを一生懸命テストしますか?
がんばり屋さんだなとは思うけど、効率悪くないですかね



991 名前:デフォルトの名無しさん [2020/07/05(日) 13:22:29.69 ID:MQ9nuMmc.net]
>>956
そんな極端な話ちゃうやろボケ

992 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:24:13.83 ID:JiRnWiGC.net]
そりゃ、クラスはオブジェクト指向を実現する上で便利だからね。大切な存在さ。でも、クラスなんて無くてもオブジェクト指向でコードは書けるし、逆に、クラスが合っても手続き型の記述をしたら、そりゃ、オブジェクト指向じゃねーわ。
つーか、クラスを使ったらオブジェクト指向ってマジで言ってる?
それってつまり、このスレで時々名前の出るstaticおじさんの書いたコードもオブジェクト指向だと言い張るつもり?

993 名前:デフォルトの名無しさん [2020/07/05(日) 13:25:43.22 ID:9F15TCk0.net]
>>957
えーー、違うそうじゃ無い。多分君よくわかってない。
例なわけで実際にありえないとかありえる訳が無い。そんな話じゃ無いし
根本的な部分がわかってない。

publicでは問題がなく、private単体だと問題がでるコードなわけで。この意味はわかる?

994 名前:デフォルトの名無しさん [2020/07/05(日) 13:29:16.63 ID:MQ9nuMmc.net]
>>959
staticおじさんの元の話知ってる? 僕はリアルタイムであれを読んでたからよく知ってるんだけれども
staticおじさんは必要なところではオブジェクト作るよ、でもASP.NETのForm Applicationのフレームワークには
もともとリッチなオブジェクトが用意されてるから実務ではそれを組み合わせるだけで事足りることが多いよ
だからstaticメインで組み上げてオーケーさって話だったよ

オブジェクト指向信者がアホな前提置いて話を発散させただけでstaticおじさんが言ってることはわりあいまともだった
こういう議論の場で神クラスを引き合いに出して批判するという極端なことやって意味があるのかなと僕は疑問ですね

995 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:30:55.04 ID:JiRnWiGC.net]
いや、そもそもstaticおじさんのコードはオブジェクト指向でも何でもねーよ!
話反らすな。

996 名前:デフォルトの名無しさん [2020/07/05(日) 13:32:41.77 ID:MQ9nuMmc.net]
>>962
staticおじさんの書いたコードもオブジェクト指向だと言い張るつもり?

と君が聞いたからstaticおじさんに対する僕の所見を述べたつもり
ASP.NETのオブジェクトを使ってるならオブジェクト指向でしょ
オブジェクト指向が為せる技だと思うよ

997 名前:デフォルトの名無しさん [2020/07/05(日) 13:33:02.71 ID:MQ9nuMmc.net]
オブジェクト指向便利だよね

998 名前:デフォルトの名無しさん [2020/07/05(日) 13:33:43.81 ID:9F15TCk0.net]
コードあげてくれるのは偉いと思うので気がひけるのだが、上のコードは
privateとpublicの違いを表すための部分がまるですっぽ抜けてるし、そもそも
staticだし結構それ自体staticおじさん感がある。すまんw

999 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:33:52 ID:JiRnWiGC.net]
>>963
ちげーよ。ASPがオブジェクト指向であって、staticおじさんのコードはオブジェクト指向でも何でもねーよ。

1000 名前:デフォルトの名無しさん [2020/07/05(日) 13:37:13 ID:MQ9nuMmc.net]
>>966
でもASP.NETのフレームワークがオブジェクト用意してなかったらstaticおじさんはコード書けなかったと思うし
staticおじさんのコードはオブジェクト指向を有効的に活用した非常に優れたコードだと思いますよ
必要もないのにオブジェクト作るのはアホですわ



1001 名前:デフォルトの名無しさん [2020/07/05(日) 13:38:05.15 ID:MQ9nuMmc.net]
staticおじさんは必要な場面ではオブジェクト作るっていってるからねー
僕はstaticおじさんに詳しいんだ

1002 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:38:11.20 ID:9F15TCk0.net]
神のGTO感があるw

1003 名前:デフォルトの名無しさん [2020/07/05(日) 13:40:17.58 ID:MQ9nuMmc.net]
物事の本質を見誤ると道を踏み外すよ
状態に依存してないのにインスタンスメソッドにしたりとか
staticメソッドを定義したらstaticおじさんと言ったりとか
そういうバカのできあがりですよ

1004 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:40:37.05 ID:JiRnWiGC.net]
>>967

> >>966
> でもASP.NETのフレームワークがオブジェクト用意してなかったらstaticおじさんはコード書けなかったと思うし

そうだね。

> staticおじさんのコードはオブジェクト指向を有効的に活用した非常に優れたコードだと思いますよ

お前がそう思うのなら、そう思えば。そはどうでもいい。

で?
クラスを定義すればオブジェクト指向だとまだ主張するの?

論点ずらすなや

1005 名前:デフォルトの名無しさん [2020/07/05(日) 13:42:50.97 ID:MQ9nuMmc.net]
>>971
何が気に入らなくて僕に絡んでるのかわからないですが
クラスがオブジェクト指向の本質であることには変わりないですよ
クラスとはデータと処理をセットにして持つことができるものです
クラスを定義することこそがオブジェクト指向の本質です

1006 名前:デフォルトの名無しさん mailto:< []
[ここ壊れてます]

1007 名前:>2020/07/05(日) 13:44:43.62 ID:MQ9nuMmc.net mailto: 責務ごとにオブジェクトをわけましょうなんていうのは
オブジェクト指向でプログラミングすることを前提にした設計論でしか無いです
クラスの存在こそがオブジェクト指向の本質です
[]
[ここ壊れてます]

1008 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:45:21.93 ID:JiRnWiGC.net]
>>972

>>926をオブジェクト指向と認識している時点でオメーは間違ってるんだよ。

1009 名前:デフォルトの名無しさん [2020/07/05(日) 13:47:18.05 ID:MQ9nuMmc.net]
>>974
いいえ、君のほうが間違いです
Mainという名前にしてるのはpaizaではMainじゃないと動かないからですよ
その辺わかって絡んでますか? あまり僕を怒らせないほうが良いです

1010 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:47:27.85 ID:JiRnWiGC.net]
>>972
何が気にいらないかって?
オブジェクト指向でも何でもねぇコードをオブジェクト指向と認識して今まで長ったらしい口論を続けてきたことだ。

クソみたいな時間だったな、オイ。



1011 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:52:06.41 ID:JiRnWiGC.net]
>>975
まぁ、いいさ。これ以上は不毛だ。スレも終わるし。
俺は俺の思う正しいオブジェクト指向で今後も楽をさせてもらうよ。
そっちも、そっちの思うオブジェクト指向とやらを使い続けるがいい。

成果が出た方が正義だ。

1012 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:55:35.80 ID:h7Qz+vpg.net]
オブジェクト指向だから髪型は自由なのさ

彡 ⌒ ミ
(´・ω・`) 不毛とかいうな!

1013 名前:デフォルトの名無しさん [2020/07/05(日) 13:56:22.57 ID:MQ9nuMmc.net]
ハゲに謝るべき

1014 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 13:56:24.62 ID:VS9zJ3bZ.net]
よし
話を一度整理しよう

privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね

1015 名前:デフォルトの名無しさん [2020/07/05(日) 14:06:22.83 ID:MQ9nuMmc.net]
ナイスな整理と言わざるを得ない
議論もリファクタリング可能であることを如実に示した

1016 名前:デフォルトの名無しさん [2020/07/05(日) 14:09:58.85 ID:MQ9nuMmc.net]
>>976
僕のコードはオブジェクト指向ですよ
そこんとこよろしくですよ

オブジェクトをどう分けるかって話はありますよ
しかし、それとは独立してオブジェクトは存在するので
オブジェクトを定義できるクラスの存在そのものがオブジェクト指向の本質なわけです
だからオブジェクト指向言語にはクラスが存在します

生物学の類、目のようなものです、どう分類するかは副次的な話であって
分類できることこそが最も重要な事柄です

1017 名前:デフォルトの名無しさん [2020/07/05(日) 14:18:27.81 ID:9F15TCk0.net]
正直あの短さでOOかどうかと(スタティックでインスタンス化もないコードだが)言うのは
不毛だけどID:JiRnWiGCの組み込みおじさんのがOO感はあるよ。

で、staticで出されてもprivateのテストがどうかと言う話には全く寄与しないわけだが、
じゃあ逆に、>>805のチンコテストのfuncSとfuncBはどうやってテストするの?

パブリック経由で全パターンと言うことならこれでこの話はおしまい。
パブリック経由でやりましょう。

違うと言うなら具体的にコードでおながいします。

smallestを9じゃなくて8にしろとかいう苦情は受け付けますw

1018 名前:デフォルトの名無しさん [2020/07/05(日) 14:23:34 ID:MQ9nuMmc.net]
>>983
僕ならテストしないですね、全部書き直します
メソッドを行数で分割するようなことしてるからそういう下痢便コードができあがるんじゃないかと思いますよ

1019 名前:デフォルトの名無しさん [2020/07/05(日) 14:24:31 ID:MQ9nuMmc.net]
クラスにしてもメソッドにしても責務でわけないと
行数が50行超えたから分割しなければみたいなアホなことやってるのはアホですわ

1020 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:25:15 ID:JiRnWiGC.net]
(組み込みおじさんじゃないんだけどな...組み込みもやるけど)



1021 名前:デフォルトの名無しさん [2020/07/05(日) 14:26:22 ID:MQ9nuMmc.net]
>>986
器用ですね、じゃあ僕との仲直りもすぐにできそうですね

1022 名前:デフォルトの名無しさん [2020/07/05(日) 14:28:26 ID:9F15TCk0.net]
>>984
書き直して決め打ちコピペにstaticなんだw
結局publicとprivateの違いはよくわかってないな。
まあ頑張れ。君とはこれまでだ。

>>986
組み込みおじさんって言ってたやんけ(言ってなかったか?)

1023 名前:デフォルトの名無しさん [2020/07/05(日) 14:30:37 ID:MQ9nuMmc.net]
>>988
staticにしたのは状態に依存してないからですね

1024 名前:デフォルトの名無しさん [2020/07/05(日) 14:31:51 ID:9F15TCk0.net]
下痢便君は10代後半から20代前半というところかなあ。

ウンコチンコのレベルと絡んでてもおじさんあんまり面白く無いんだよね。
自分でチンコテストのコードあげたけどw

でもコードあげたのは偉いと思うので頑張ってね。

1025 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:33:06 ID:JiRnWiGC.net]
あー、組み込みおじさんにも解るように だよ。
俺自身、組み込みもやるからややこしいが、ずっと前に登場した組み込みおじさんとは別人だよ。

まぁ、慌てて書いたから余計な発言だったか。
もう、この際OOPの利点さえ感じていればなんでもいいことにするよ。
スレも少ないし、ヒートダウンしたし。

1026 名前:デフォルトの名無しさん [2020/07/05(日) 14:33:34 ID:MQ9nuMmc.net]
>>990
僕まだ小学生でちゅ

1027 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:35:03.91 ID:9F15TCk0.net]
あー組み込みおじさん(固有名詞)が居たのね。一般名詞のつもりでした。
この板昨日からなので。

1028 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:35:40.42 ID:9F15TCk0.net]
>>992
偉いねえ。

1029 名前:デフォルトの名無しさん [2020/07/05(日) 14:37:40.20 ID:MQ9nuMmc.net]
参照透明なメソッドだとテストしやすいしバグの混入も減らせるのでおすすめ!
間違っても>>805こんな下痢便分割しちゃダメ

1030 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:38:27.28 ID:9F15TCk0.net]
しかし小学生の下痢便君とかと話ててもこっちは損するばかりだしなあ。
マジで。しかも下痢便君はましな方な可能性さえあるし。

予想以上だった、この板。マジやばい。ASP.NETのオブジェクトを使ってるなら
オブジェクト指向だし。



1031 名前:デフォルトの名無しさん [2020/07/05(日) 14:38:41.11 ID:MQ9nuMmc.net]
>>993
マジで!? ID:gS37C1rZ これ絶対君だと思ってた、言ってること薄っぺらいしアホだし

1032 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 14:42:18.59 ID:h7Qz+vpg.net]
不毛

彡 ⌒ ミ
(´・ω・`)

1033 名前:デフォルトの名無しさん [2020/07/05(日) 14:43:23.60 ID:9F15TCk0.net]
>>997
マジで某アメリカの誰でも知ってるとこの中の人だよ。
日本人あんまり居ないので、これ以上はやばいからどこだか
下痢便君に教えるわけが無いけど。

インデントとか言ってたの君だっけ?

そんなくだらない(しかも的外れな)揚げ足取りじゃなくて、
君のコード、根本的なとこに問題あるんだけど、わからない人に
わかれと言ってもわからないだろうからなあ。

ちゃんとOOをやったらわかるかも。頑張ってね。下痢便君w

1034 名前:デフォルトの名無しさん [2020/07/05(日) 14:43:28.02 ID:MQ9nuMmc.net]
>>998
ハゲて頑張っておられる方にお詫び申し上げます

1035 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 16日 14時間 55分 52秒

1036 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<316KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef