カプセル化■プライベートメソッドをテストする方法

■ このスレッドは過去ログ倉庫に格納されています
2020/07/05(日) 20:47:46.60ID:M+BkbwUs
■短い回答
プライベートをテストしたい場合は設計に問題があるので、パブリックに変更してテストしましょう

■これに対する(変な人の)驚いた反論

プライベートを一時的にパブリックにして、テストが終わったら
プライベートに戻すなんてやるわけないだろw
↑誰もそんなコトしろなんて言ってない

■テスト専門家による回答

t-wadaのブログ
https://t-wada.hatenablog.jp/entry/should-we-test-private-methods

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

ほとんどのプライベートメソッドはパブリックメソッド経由でテストできるからです。
プライベートメソッドは実装の詳細であり、自動テストのターゲットとなる「外部から見た振る舞い」ではありません。
プライベートなメソッドのテストに関しては、4つの考え方があります。

・パブリックメソッド経由でテストする
・別クラスのパブリックメソッドとする
・テスト対象の可視性を(やや)上げる
・プライベートのまま、リフレクションでアクセスしてテストを書く

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

別クラスのパブリックメソッドとする
プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを示唆している場合があります。
テストがどうしても書きたい場合は、その責務はテスト対象のプライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。
104デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:10:39.95ID:O+C/kGAG
単体テストっていう言い方がまずいのかも
インターフェーステストとインプリメンテーションテストに分けるのが良い気がします
105デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:11:55.03ID:zTLocdwC
言い張るんだったら、ほんとに和田メソッド被害者の会作っちゃうよ?
会員200万人目指しちゃうよ?
いいの?
2020/07/07(火) 15:12:43.32ID:YBf2Aagc
>>105
先にパブリックメソッドの場合に
どうするかを答えてくれないか?
107デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:12:43.34ID:zTLocdwC
>>105
言いたいことわかってくれるあなたは、PythonとかC#とかC++ですね?
2020/07/07(火) 15:13:07.34ID:YBf2Aagc
自作自演w

105 名前:デフォルトの名無しさん[] 投稿日:2020/07/07(火) 15:11:55.03 ID:zTLocdwC [8/9]
言い張るんだったら、ほんとに和田メソッド被害者の会作っちゃうよ?
会員200万人目指しちゃうよ?
いいの?


107 名前:デフォルトの名無しさん[] 投稿日:2020/07/07(火) 15:12:43.34 ID:zTLocdwC [9/9]
>>105
言いたいことわかってくれるあなたは、PythonとかC#とかC++ですね?
109デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:13:54.75ID:O+C/kGAG
王家の秘伝メソッド普及委員会を立ち上げよう
110デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:14:08.44ID:zTLocdwC
>>108
>>104 に言いたかっただけだろ。
そのくらいわかれ。
2020/07/07(火) 15:15:25.23ID:YBf2Aagc
>>110
そんなどうでもいいものばっかりにレスしてないで、
先にパブリックメソッドの場合に
どうするかを答えてくれないか?
112デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:15:52.28ID:zTLocdwC
Javaは色々研究して提唱してえらいなあと思う部分もあるんだけど、すぐに宗教化してしまうからな。
そこがJava!なんだよな。
2020/07/07(火) 15:17:07.58ID:YBf2Aagc
どうも都合が悪かったようだな
俺のレスに答えられずひたすら関係ない話を始めた
2020/07/07(火) 15:18:08.09ID:pnFsfYkB
>>108
この自作自演は恥ずかしいなww
115デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:20:13.83ID:zTLocdwC
でも俺が設立するからには、普通じゃダメなんだよ。
俺がやるからには、和田メソッド被害者の会長が和田さん。
ここまでやってこそ本物だと思うんだよね。
まず、和田さんを説き伏せなきゃ。
2020/07/07(火) 15:21:24.14ID:YBf2Aagc
いいだしっぺが説き伏せるそうです。
実際に行動を起こせるか見てみましょう
117デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:22:05.58ID:zTLocdwC
和田さん頼むわ。
見てるんやろ?
2020/07/07(火) 15:22:43.01ID:YBf2Aagc
いきなり他人だよりです(笑)
自分から知らせに行く勇気もないようですね
119デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:24:58.29ID:zTLocdwC
>>104 をベースに考察していけば良いのでは。
2020/07/07(火) 15:26:46.74ID:YBf2Aagc
ではまずいいだしっぺから
なぜパブリックメソッドにすると
すべての入力の組み合わせをテストしなくてよくなるのか?
C1カバレッジって言葉知ってますかね?
2020/07/07(火) 15:27:35.56ID:YBf2Aagc
訂正、すべての入力の組み合わせは2カバレッジだった
2020/07/07(火) 15:27:50.82ID:YBf2Aagc
C2カバレッジだった
2020/07/07(火) 15:39:26.39ID:K/dtFkkl
>>87
一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない

例えばgrowableなring bufferでqueueを実装するとして
バッファを拡大させるロジックに独自の最適化をいろいろと施してるような場合、
各種分岐に応じたメモリコピーの方法だったり、それに応じたメモリの初期化状態の確認だったり
privateなhead/tailポインタへのアクセスだったり、
public経由だけでは確認できないテストをしたほうがいい場合がある
2020/07/07(火) 15:42:28.40ID:YBf2Aagc
>>123
訂正

一般的にはQueueはprivateのメソッドも単純なロジックしか持たないから
public経由のテストで十分な場合が多いかもしれないけど
それがあらゆる状況に当てはまるわけではない

もしpublic経由のテストで不十分な場合、それはメソッドの責務が大きいと考えられる
リファクタリングして複数のクラスに分離するのが正しい対応
そうすれば自然publicメソッドとなりテストが可能になる
125デフォルトの名無しさん
垢版 |
2020/07/07(火) 15:53:43.14ID:zTLocdwC
キミも和田メソッドの被害者なんだよ。
可哀そうに。
和田さん本人だとしても、被害者であることに変わりはないんだよ。
2020/07/07(火) 15:59:04.01ID:pnFsfYkB
あれ、説き伏せるんじゃないの?
127デフォルトの名無しさん
垢版 |
2020/07/07(火) 16:00:23.93ID:zTLocdwC
もう和田さんは改心してこっちの味方だから。
2020/07/07(火) 16:09:18.16ID:bdixmHft
ごちゃごちゃうるさい
privateメソッドのテストやれよ
キチガイ
2020/07/07(火) 16:11:54.35ID:cp13iBTj
虚言癖まであるのかな
130デフォルトの名無しさん
垢版 |
2020/07/07(火) 16:15:15.28ID:zTLocdwC
和田メソッド被害者の会、会員募集中。
和田さんも入会して良いんだヨ。
131デフォルトの名無しさん
垢版 |
2020/07/07(火) 17:39:48.25ID:O+C/kGAG
>>123
君は信頼できる
実装をよくわかってる人だ
2020/07/07(火) 17:43:14.92ID:jam8vymb
可視性狂信者ってのはどうしようもないね。テストさえ犠牲にし始める。
13394
垢版 |
2020/07/07(火) 17:55:40.01ID:k9dX6gDH
>>95
今さらだけど、前スレのタイトル(今より酷い)から察せると思うが、あなたの想像を越えるお馬鹿さんがいるから、常識を持つあなたはここから逃げた方がいいよと、お前どっちの味方だよ風に言いたかった。
2020/07/07(火) 18:13:36.60ID:k9dX6gDH
って、何でもないです。
(アンカが自分に向いていたと勘違いしてたとか言えねぇ)
2020/07/07(火) 18:55:11.35ID:B0OaeN7n
>>130
むしろ、こんな気違いに絡まれる和田さんカワイソ
2020/07/07(火) 19:10:49.50ID:BPFgnJg7
結局実際に絡む度胸もないから無害やけどなw
2020/07/07(火) 19:21:49.86ID:zm6NAQZG
>>128
君の言うテストって何?
しかも、君は>>87の質問に答えてないよね?
具体例示してよ。
2020/07/07(火) 19:26:55.85ID:bdixmHft
>>137
は?いいからprivateメソッドのテストやれよ
2020/07/07(火) 19:27:35.46ID:zm6NAQZG
オブジェクト指向を理解している人間の言うprivateをテストせよ/テストするべきではない と、 オブジェクト指向を理解していない人間のprivateをテストせよ/テストするべきでない は論争のレベルが全然違う。
大学生同士の論争と小学生同士の喧嘩くらい違う。

お前はどっちだ?>>138
2020/07/07(火) 19:28:44.77ID:bdixmHft
>>139
ごちゃごちゃうるさい
privateメソッドのテストをやれ
2020/07/07(火) 19:32:38.84ID:bdixmHft
ここで話を整理するけど

privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね
2020/07/07(火) 19:33:11.12ID:zm6NAQZG
具体例もなく、privateのテストやれと言われてもできねーよ、バーカ。
2020/07/07(火) 19:35:50.42ID:bdixmHft
うんうん

わかってない人もいるみたいだからもう一度ここで仕切り直しさせてほしい



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



わかったかな?
2020/07/07(火) 19:36:30.14ID:OvditBd9
ほら、>>143は巣に帰りなさい。

【隔離】オブジェクト指向アンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1593926155/
2020/07/07(火) 19:37:40.45ID:rZMsiuSb
頭皮に触れるものは全て検査する

彡ミ
↓↓↓
彡 ⌒ ミ
(´・ω・`) 使ってるシャンプー、肌に合ってるかい?
2020/07/07(火) 19:44:10.79ID:rZMsiuSb
[ケハエール]


彡 ⌒ ミ
(´・ω・`) 確認もせず使うのは馬鹿だ
2020/07/07(火) 22:01:24.32ID:YBf2Aagc
>>143
> privateメソッドだからテストしないとか言ってるやつはキチガイ
だれそれ?

privateメソッドはpublicメソッド経由でテストすると
言ってる人しかいないけど?
2020/07/07(火) 22:08:08.37ID:O+C/kGAG
>>3の下痢便コード書いた人ですよね?
2020/07/07(火) 22:11:43.28ID:bdixmHft
>>147
それテストできてねーからw
publicから t=0のときだけprivateの処理が欲しかったとするじゃん?
そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから
そのpublicからしかテストしないんじゃt≠0のときのテストできねーじゃん
やんねーのかよ?
ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったらt=0しかテストやってなかったら
普通は怒り狂うもんだよ
っていうか絶対ブッ殺す
2020/07/07(火) 22:27:58.06ID:YBf2Aagc
>>149

> そのままじゃpublicは仕様でt=0のときしかそのprivateメソッドを呼ばないんだから

つまり、publicがt=0のときprivateメソッドを呼ぶんですよね?
publicがt=0のテストをすれば、privateのテストしてるじゃないですかw
2020/07/07(火) 22:30:06.58ID:YBf2Aagc
> ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったら
> t=0しかテストやってなかったら

仕様が変わったのならt=3のときのテストを追加しましょう
2020/07/07(火) 22:34:14.99ID:YBf2Aagc
>>149はホント意味不明だな

最初の仕様・・・t=0のときしかprivateメソッドの処理をしない
t=3のときは?→「privateメソッドの処理をしない」場合の結果が正しい

改修・・・t=3のときにprivateメソッドの処理をすることになった
「privateメソッドの処理をした」場合の結果が以前と異なるという仕様になった
では新しい仕様のテストを書きましょう

これだけなんだがなぁ
前と正しい答えが違うのに、テストを修正しないの?
2020/07/07(火) 22:49:42.87ID:bdixmHft
>>151
おかしくない?
privateメソッドの仕様は変わってないよ

お前はガラクタをこさえたから説明のできない行動を取らなければならない
2020/07/07(火) 22:52:36.96ID:bdixmHft
設計書かコメントに

このメソッドはt=0のときしかテストしていません!

って書いてあるの?
お前のソースって
悪いけど見たことねーや
滅茶苦茶バカだしもういいかな?
レスしなくて
2020/07/07(火) 22:54:46.63ID:YBf2Aagc
>>153
だから変わったpublicメソッドをテストしろよ
変わってないならprivateメソッドに何の問題もないだろ
それとも何か?お前すべての取りうる値でテストしろと言ってんのか?


この関数は数値を二倍してくれる関数である。
今まで4を入れてこの関数を呼び出していた。

今度5を入れるようになったから5を入れた場合はどうなるかテストする必要がある
今度は6を、7を、8を・・・って新しい引数で呼び出すために
そのテストが必要なんか?ああん?
2020/07/07(火) 22:56:07.20ID:YBf2Aagc
>>154
> このメソッドはt=0のときしかテストしていません!

お前は t=全ての整数 でテストしろっていってるってことでいい?
2020/07/07(火) 23:00:58.28ID:bdixmHft
は?最小-1、最小、中間、最大、最大+1通すだろフツー
2020/07/07(火) 23:02:33.64ID:bdixmHft
だが、お前のやり方ではどうやっても通すことはできないんだよ
こんな簡単なテストすら不可能
早く死ねよ
これがお前の限界なんだよ
2020/07/07(火) 23:06:04.37ID:bdixmHft
っていうかここまで自分の間違いを認めない意味はなんかあるの?
これぜってー仕事でお前の主張が通る現場ねーぞガチで
メソッドにt=0のときしかテストしてませんって書いてあるもの納品するか?
ナメてんじゃねーよ
2020/07/07(火) 23:36:58.56ID:YBf2Aagc
>>157
> は?最小-1、最小、中間、最大、最大+1通すだろフツー

・t=3のどこが、最小-1、最小、中間、最大、最大+1なんだよw

「今回」新しく仕様が変わって、t=3 などというものが登場したんだろ
なら「今回」テストを追加するだけの話だろ

それとも何か? t=3がいままでprivateを呼ばなかったのに
t=3のテストをお前はするんか?どういった理由で?
2020/07/07(火) 23:47:24.20ID:zm6NAQZG
>>159

> っていうかここまで自分の間違いを認めない意味はなんかあるの?

お前のことだろ。

> これぜってー仕事でお前の主張が通る現場ねーぞガチで

お前のことだろ。
2020/07/07(火) 23:56:35.16ID:D1qF8R0D
bdixmHftはQueueという言葉とオブジェクト指向という言葉が理解できずに発狂した説
163デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:21:47.63ID:SznGehK7
詳細に関する知識が無ければ検査できないなら、公開メンバを介して検査するのと、非公開メンバを直接検査するのは同じことですよ。

これが理解できないなら、もはや議論の意味が無いでしょう。

そもそも自身が推奨する和田メソッドさえ理解できていないって事ですから。
164デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:28:23.66ID:SznGehK7
アンクルボブの理論に対する賛否両論から議論を始めるべきなのかもしれない。
2020/07/08(水) 00:29:51.46ID:kqVG+rMe
>>149

そもそも、public経由のテストで網羅できないレベルのprivateメソッドなんてクラス内部に定義するなゴミ。
別クラスに分けろ。
166デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:35:35.13ID:SznGehK7
和田さんはアンクルボブを理論のベースにしています。
和田理論否定派はアンクルボブ理論を理解したうえで和田理論に異議を述べています。
和田理論信仰者は、そもそもアンクルボブって何?状態です。

だから議論が成り立っていないのです。
2020/07/08(水) 00:42:30.98ID:UPP9MPHB
(和田メソッドって何だ?)
168デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:52:01.29ID:SznGehK7
詳細に関する知識を持ってはならないというのが和田理論の根幹です。

private、publicという字面にこだわるのは単なる信仰心にすぎません。
神を信じますか?ハイ信じます。
神を見ましたか?ハイ見ました。
こういうことです。
169デフォルトの名無しさん
垢版 |
2020/07/08(水) 00:56:34.00ID:SznGehK7
和田理論を素直に受け入れられるのは、プログラミングとはAPIを呼び出すことであり、決してアルゴリズムを実装することではないからですよ。

つまり、システム利用者がシステム作者に対して小言を言うような状態です。
詳細を検査したら駄目じゃないか!詳細は呼び出せればいいんだよ!
2020/07/08(水) 01:27:45.49ID:/rdq0ZOx
>>167
「アンチ和田」がかってに命名したもの(笑)
2020/07/08(水) 01:28:51.37ID:/rdq0ZOx
「和田理論」も同じな。「アンチ和田」はなにか理由があって
命名しているんだろう。常識的なことを名前をつけることで
特別な方法だと錯覚させる手かな?
2020/07/08(水) 04:10:02.60ID:6ZEX1zcL
>>166
ロバート・C ・マーチンのこと?
2020/07/08(水) 04:11:04.99ID:6ZEX1zcL
>>169
なるほどな
2020/07/08(水) 06:13:27.58ID:AplvQTCJ
>>172
違います。

>>173
わかってない人になるほどと言われても困ります。
2020/07/08(水) 08:26:03.95ID:6ZEX1zcL
>>174
違いません、困りません
2020/07/08(水) 08:29:40.77ID:6ZEX1zcL
アンクルボブをロバートと読み替えても通じますし
僕が納得したところでお前は何も困りません
2020/07/08(水) 08:35:30.95ID:6ZEX1zcL
>>159
相手は >>3 の下痢便コード書いた人だよ
まともなプログラム書けない人だから相手にするだけ無駄だよ
178デフォルトの名無しさん
垢版 |
2020/07/08(水) 09:02:50.79ID:SznGehK7
>>172
ハイそうです。
2020/07/08(水) 12:16:39.34ID:hmU+YLWt
関数が取りうる値で全てでテストしろと言ってるアホがいるスレはここですか?

今回78という値で関数を呼び出すことになった
78という値を与えた時、ちゃんと動くかテストしているかね?

だってさ(笑)
2020/07/08(水) 12:42:10.97ID:PWwZYnOX
privateメソッドのテストを具体的にどうやるのか未だに分からん。

そもそも、public経由のメソッド呼び出しで網羅できない巨大privateメソッドの正しい動作なんて定義できるの?
2020/07/08(水) 12:54:49.19ID:ODFOiaSP
巨大なメソッド自体が悪じゃね

あとテストってinoutを確認するんじゃないの?
outいっぱいしてたらもうそれ完全害悪じゃね
182デフォルトの名無しさん
垢版 |
2020/07/08(水) 14:27:45.18ID:ZL+NZ9CQ
ステートメントの入力により無限通りの構文木が出力されるパーサ?
なんだそれ?
2020/07/08(水) 17:57:24.33ID:pS2ORJtj
>>179
最小、最大、中間値ぐらいしか言ってないのにそうやって曲解しないと負けちゃいそうなの?
2020/07/08(水) 18:33:36.38ID:IWyzFdDn
そもそも、privateメソッドを定義すること事態、滅多にないよ。
というか、自分のソース見たら無かった。
2020/07/08(水) 18:42:33.47ID:IWyzFdDn
このスレの過去の発言を見ると誤解を招きそうだから補足するけど、別に内部処理をpublicにしたからprivateは無いという意味じゃないからね?
元からpublicメソッドとprivate変数しかない。
2020/07/08(水) 20:52:09.28ID:Sbr5rKl2
>>181
巨大なメソッドをprivateメソッドに分割しても、その分割したメソッドを個別にテストできなけりゃ
分割してないのと同じじゃね?
2020/07/08(水) 20:55:55.79ID:hmU+YLWt
>>183
↓って書いてますが? 3と78でなにか違いがあるんですか?

> ある時改修で別のpublicメソッドからt=3のときにprivateメソッドを呼ぶことになったら
> t=0しかテストやってなかったら
2020/07/08(水) 20:59:13.73ID:hmU+YLWt
>>186
そういうこと。巨大なメソッドがあったらそれを
一つのメソッドと、そこから使われるユーティリティメソッドに分割する
ユーティリティメソッドはできる限り汎用的なインターフェスにする(たとえ一箇所でしか使われていなくても)
ユーティリティメソッドはそれ単体でテストする
そうすれば巨大なメソッドのコード量が減る
2020/07/08(水) 21:15:04.90ID:s5mehW61
>>187
そここだわってるのお前だけじゃん
最小、最大、中間値のテストやった?
って聞かれてるときに3でも78でも駄目なのはバカでもわかるだろ?w
2020/07/08(水) 21:19:38.42ID:hmU+YLWt
>>189
あのさぁ、ごまかしてないでちゃんと書こうよ?

最小、最大、中間値のテストやってれば
最小、最大、中間値ではない3のテストなんて不要なんだよって
ちゃんといわないと、あのバカには伝わらないよ?
2020/07/08(水) 23:59:05.09ID:hEQaHqpN
最小、最大、中間値って聞いたことがないけど
どこかの分野で一般的に使われてるもの?

境界値分析なら
境界値と境界値の内側と外側の3値か
境界値と境界値の外側の2値かどっちかが一般的だと思う
2020/07/09(木) 00:14:35.43ID:qGUjUa51
>>191
3と78がそれに当たると申すか?
2020/07/09(木) 00:16:52.90ID:tq6y70T3
俺もそう思ってたけど、そもそもスレタイともずれてきてるよねっていう
2020/07/09(木) 00:21:36.93ID:Ai/0yITE
3と78の伏線が
今、回収されたのか?
195デフォルトの名無しさん
垢版 |
2020/07/10(金) 12:24:37.85ID:sSLzYC6I
詳細を知ってはならないということは、詳細の知識、つまり境界を知ってはならないということ。

「彼らはオブジェクト指向を全く知らない可哀そうな人ではないか?Javaを学ぶべきだ!」などと言う前に、原典に当たろう。
2020/07/10(金) 12:25:53.05ID:A+QDXq04
>>195
オブジェクト指向と関係ない話なら、関係ないって書いとけよ
2020/07/10(金) 12:54:55.71ID:1UxRpBTq
zTLocdwC以外、Javaなんて誰も言ってないけど?何が言いたいんだ?

スレタイはカプセル化って書いてあるしOOPは理解している前提でしょ?
まぁ、明らかにOOPを理解していない人が発狂していたけど。
198デフォルトの名無しさん
垢版 |
2020/07/10(金) 14:04:44.56ID:sSLzYC6I
いや、おそらくわかっていないだろう。
199デフォルトの名無しさん
垢版 |
2020/07/10(金) 14:09:26.25ID:sSLzYC6I
オブジェクト指向のすばらしさを語っている人が、一番オブジェクト指向を知らない。
ゆえに議論が成り立たないという状態ではないだろか。
200デフォルトの名無しさん
垢版 |
2020/07/10(金) 14:12:09.99ID:sSLzYC6I
>>196
隠ぺいとオブジェクト指向は直行する概念ではある。
とはいえ、事実上同時に用いられるので、関係ないとは言えないのではないか。
2020/07/10(金) 15:02:20.85ID:zQa5K81u
>>200
そもそも、このスレで誰もオブジェクト指向の素晴らしさなんて語っていない。

さっきから誰に対して言ってるんだ...。
2020/07/10(金) 15:16:19.83ID:TbXdOMZ+
ポエってるやつがいるな
203デフォルトの名無しさん
垢版 |
2020/07/10(金) 16:07:13.59ID:sSLzYC6I
和田メソッドを称賛してる人たちに決まってるだろ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況