1read 100read
2012年4月プログラム232: CPPUnitについて少し話そうかい (282) TOP カテ一覧 スレ一覧 2ch元 削除依頼
アプリケーションの国際化対応の話題スレ (234)
強いAI(人工知能)ver0.0.1 (741)
パーサーとか構文解析とかその他もろもろ (110)
Ruby最高や! (188)
C言語で2chに書き込みたいのですが (207)
IDにC、C++、VB、etc...が出たら神!!! (161)

CPPUnitについて少し話そうかい


1 :03/01/12 〜 最終レス :12/03/21
テスト自動化全盛のこのご時世皆様いかがお過ごしでしょうか。
より賢い利用法を考えていきませんか。

2 :
より賢い利用法を教えてください。
なら初心者のポケミスとして酌量の余地もあったが・・・。

3 :
>>1
リンクぐらい張れよ。あと折角だから JUnit とか、C++ 以外のユニット
テストフレームワークも含めん?
CppUnit
http://cppunit.sourceforge.net/
CppUnit-x: Testing Framework for C++
http://member.nifty.ne.jp/glad/cpp/test/
xUnit リンク集
http://www.xprogramming.com/software.htm

4 :
CPUUnitがどうかしたのか?

5 :
C++はリフレクションが無いからクソ。

6 :
XPなんか必要ない

7 :
>>5
リフレクションってなに?

8 :
>>6
ユニットテストとリファクタリングは XP 以外にも有用なアクティビティだよ。

9 :
Junitを使いたいんだけど、
解説してる本とかWEBサイトとかが
ないから使えないんだよね。
SEな人たちは、そこの研修で教えてもらってるから
いいよね。

10 :
>>9
いくらでもあると思うが。
http://www.google.co.jp/search?q=junit&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

11 :
CppUnitの日本語解説サイトってないですか?
XPテスト技法とかみてもちょっとしか載ってないし、英語サイトは難しいしで。

12 :
>>11
ぐぐってみた?

13 :
>>12
ぐぐったけど、ちょっとしかでなかった。
そこもさわりぐらいしか書いてないし。

14 :
800⊂(゚∀゚ )  

15 :
>616
それが争点になればねぇ・・
ドキュソを証明するのは簡単なんだけど、それを判断する香具師がオールドタイプだから・・

16 :
あはっ
たとえば、1スレをIEとかのブラウザで表示するのに
何秒かかりますかー(スレの大きさによるけど)
それの 10,000倍くらいかかるかと。
あと倉庫の一覧表とかも全部書き換えるし
html化と同時に datのzip化 および出来た htmlの
zip化も同時に行われますー
さてさて どれくらいかかるのやら。。。

17 :
>>5
べつにリフレクションとかなくたって、テストメソッドを集めて
addTest するようなコードをはきだすスクリプトを書けばよいだけの話。
それより、子河童ってなによ?誰か説明きぼん。

18 :
削除以来だしとけ。

19 :
えぴすてーめー氏は 2ch 見てないのかな。
>>17
http://sourceforge.jp/projects/cuppa/
CppUnit 用のコードの雛型を生成してくれる。

20 :
CPPUnitのテストって結局ある変数がある値になっているかどうかしか判定できないの?
入力データで処理がいくつかに分かれる場合はテストも複雑になって正確なテストができるとは思えんのだが。

21 :
>>20
基本は、C++処理系が用意している assert よりもエレガントな処理を
してくれる assert を提供してくれるってことだよね。
assert の中は何を書いてもよいわけで、別に変数の値チェックに限られる
わけではない。
たとえば、処理の途中経過をテキストダンプして、あらかじめ作成しておいた
正しいダンプ結果との差分をチェックしてもよい。
assert( system( "diff …" ) == 0 ) ってな感じで。

22 :
みなさんはGUI経由の入力値をチェックするにはどうしてますか?

23 :
>>21
なるほど。
でもデータによって無限にパターンがある場合ってどうしてますか?
DBからデータを取ってきてそれによって処理が代わったりする場合とか。

24 :
つかえねー

25 :
>>5
typeid演算子とかtype_infoクラスでは役不足?

26 :
はっきりいって力不足です。
最低限クラス内のtestXXX()メソッド列挙する機能が必要。

27 :
>>26
それって適当なスクリプト書いてそういうファイルを自動生成するようにすれば
いいだけじゃないの?

28 :
>>27
ついでに、プログラムの方も「入力を拾ってくる」ところと「入力を
処理する」ところを分離しておくのが吉だよな。
逆に言うと、そういう粒度の細かい設計にしてないと、単体テストは
有効に使えない。

29 :
>>28
MVCのVとC?

30 :
>>27
いちいちフィルタかますの遅いし面倒だしテンポ悪いし。
それにクラス参照ないのも×

31 :
>>30
遅いならCで書きゃ問題ないだろ。普通のコンパイル時間に比べれば微々たるもんだ。
っていっても別に使いたくない人に無理やり使わす気はないけど。
ただ単体テストで他に良い方法がないのが事実だから。

32 :
>>31
別に使い物にならないとはいってないよ。
ただ言語仕様が腐ってるからフレームワークが
不便かつ不自然に歪んでるというだけで。

33 :
>>23
自動的に完全な同値分割やC1カバレージのテスト生成しても、
テストの数が多すぎて見たくもなくなる。
同値分割は意識しないといけないけど、
そのメソッドの仕様として必要である(と思った)分だけのテストを作る。
ユニットテストが不必要に複雑になるときにはメソッドを分割するなど設計を変更すべき。

34 :
>> 32
> 不便かつ不自然に歪んでるというだけで。
リフレクションといっても、UnitTest で使ってるのはせいぜいテスト用
メソッドの一覧作成ぐらいだろ? (CppUnit-x だと suite() メソッド
を手で書くか、自動生成するかの違い)
その程度、Perl あたりでスクリプト書けばすぐに解決だと思うが。っつ
か、俺は Perl + Makefile でよろしくやってます。

35 :
(^^)

36 :
人を人と思わないコイツらの死に様は悲惨だろうな

37 :
言語別にスレ立てるなよ。>1

38 :
(^^)

39 :
>>37
別にいーじゃん。一番需要が多い言語だし。

40 :
>>39
需要が多いってどういう意味だい?
C++ で仕事してる人間は(VBやCOBOLやJavaに比べれば)すごく少ないはずだが?

41 :
> C++ で仕事してる人間は(VBやCOBOLやJavaに比べれば)すごく少ないはずだが?
ソースぷりーず。
いや否定してるワケじゃなくて、プログラミング言語別のプログラマ人口って
どんなもんかと思ってさ。

42 :
>>41
使ってるかはともかく教養として知ってないと何かと大変だと思うけどね。

43 :
(^^)

44 :
VBやJavaの需要なんてほとんどないだろ。
VBは開発補助用のツール作り。
Javaも限りなく少ない。

45 :
>>44
世間知らずなCOBOLerの憂鬱。 完

46 :
>>41
ゴメン、ソースどこか忘れちゃった。
なんか COBOLer + VBer で全世界のプログラマの 50% 以上だとかなんとかって
結果だったと思う。
誰か該当ソースぷりーず(--;

47 :
ソースはないが世界規模ではCOBOLerは多いらしい。
が、サーバサイドJavaやらASPやらの受注が多いのも事実で
そういった仕事が多い=VB&Java使いが多い
という認識をしている人が*日本では*大半じゃないかと。

48 :
>>46-47
コボルが書ける人=コボルしか書けない人
ではないと思うんだがどうか。

49 :
俺も
VB&Java使い=VB&Java*しか*書けない人
とは言ってないけどな。
主にその言語を仕事として使っている(or 使わねばならない)人って意味だろ?

50 :
サーバサイドということになると、Javaよりperlやphpの方が多かったりしてね。

51 :
頼むからさー
C++使ってなくて、さらにCPPUnit使う気ないヤツはスレから出てってくれよ

52 :
あるから何かネタ振れ

53 :
全くだ。
実際にCppUnit使って開発はしてるが、ここで喋るネタなんてないしな。

54 :
ぼーとした頭で「VB&Java」という文字列を見て、「ああ? Javaっていう
VB型の参照がどうしたんだ?」とか一瞬思ってしまったが、よく考えると
あながち間違いでもないのか?

55 :
未経験者を啓蒙するような内容はありませんかねぇ

56 :
XP周りのサイトあたってみたら。

57 :
どうも使うのが面倒なんだよな。
JUnitはeclipseからウィザード起動するだけでいいのに。

58 :
VBAUnitをだれか一緒に作りませんか?

59 :
>>58
http://www.rapid-programming.com/vbaunit/vbaunit.zip

60 :
皆、cuppaっての使ってるのかな

61 :
>>60
何言ってんだ、お前

62 :
http://www.unittest.org/
ってどうなの?

63 :
TestingFrameworkのクラス構成って変じゃない?
何で素直にCompositeにしないの?

64 :
Foo::Foo()
{
 // ものすごく、たくさんのオブジェクトを生成。インクルードしたファイルや、
// 実行時に読み込まれるファイルの内容に依存。
}
Foo::doSomething()
{
 // なにやら処理
}
↑こんなソースがあって、doSomething() メソッドを単体テストしたいんです。
# Foo クラス自体を書き直すのがベストなんですけどね。
単純なコンストラクタを持つ Foo のサブクラス FooSub を作り、
ダミーのオブジェクトを持たせておいて、
FooSub.doSomething() をテストするっていうのは、いけないことですか?

65 :
(^^)

66 :
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

67 :
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

68 :
>>64
それがなにか?

69 :

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

70 :
>>64
はぅ

71 :
(^^)

72 :
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

73 :
Visual Studio.NETでコンパイル成功した人いる?

74 :
http://www.rantyan.net/akira/linkvp.html
◎満足しました!!(^0^)最高です!!◎
75 :
あぼーん

76 :
>73
cppunit-x は普通に使えてる > .NET 2003
激しくどうでも良いことだと思うが
ある名前空間にあるクラスのテストクラスって
あるクラスと同じ名前空間に入れる?
それとも別空間でusingするなりなんなりする?
もったいないので保守age(=゚ω゚)ノ

77 :
CPPUnitは種類が大杉てどれを使っていいかわからん。

78 :
保守age
すごい寂れっぷりだ・・・
やっぱCPPUnitは無理なのか?
河童がもう少しがんばってくれないかな・・・

79 :
cppunitをLinuxで使うとSIGSEGVでお亡くなりになってしまう。

80 :
やり方がマズイだけだと思われ。
俺はRedHatでちゃんと動いてるし。

81 :
>>84
char* p = 0;
*p = 10;
とかやってみそ。落ちるから。

82 :
さらに保守age
CPPUnitに対する疑問点。
1.そもそも楽するためにあるのになんでCUIなんだろ?
  (CUIは前時代的。他人を説得するのに説得力激減。)
2.テストしたいクラスから自動的にテストクラス作るくらいやってくれたらいいのに。
  (スクリプト書けばいいとか言うのは問題外。面倒。)
ついでに河童について
3.GUIやるのになんでFOX?
  (外観に違和感ありすぎ。
  マルチプラットフォームの時点で使用者のことはかんがえてないと思う。)
4.部品が多すぎてどうすればいいのかよくわからない。
  (小河童やら子馬やら、内輪で使う分にはいいんだろうけど・・・なんかキモイ)

83 :
1.
CUIの方が自動化しやすく人為的ミスが起きにくい
2.
なにをテストしたいのかどうやって決めるの?
3.
シングルプラットフォームの方が使用者の事を考えてないと思うが
4.
そんくらい自分で調べろ
(2行目は激しく同意)

84 :
おお、もう反応が。
>>83
1.予想通りの反応だ。自動化については同意。
  ただ、JUnitと比べてどうよ?CUI「も」用意すべきだったと思う。
2.ごめん、言葉が足りなかった。欲しいのはテストクラスのテンプレ作成だね。
3.みてくれなんてどうでもいいならそうだね。
  ただWindowsアプリの中であれはどうだろう?
  使いやすい、にくいじゃなくて単純に気分の問題かな?
  マルチプラットフォームの敗因は見てくれの違和感じゃないかなと思うわけよ。
  Swingとか遅いわ、キモイわ、そらクライアントつかわねーよって感じだし。
4.漏れは調べたよ。ただ、万人がそうするかっていうと・・・
  部品がばらばらってある時点でやる気をなくす香具師も多いだろう。
  それとも分かるやつだけ使えってスタンスかな?

85 :
>欲しいのはテストクラスのテンプレ作成だね。
つーかあんた全然自分で調べてないじゃん。

86 :
1. JUnitだってGUI使ってる奴なんてごく少数だと思う。大多数はテスト実行も自動化してるはず。
2. そもそもxUnitはテストファースト(最近はTDDっていうのかな)で使うものだからその使い方は間違い。
仮に後付けのテストを書こうするなら、簡単なスクリプトでも書けばいいじゃん。
河童は使ってないのでパス。

87 :
>>85
何が?
もしCPPUnitにテンプレ作成機能がついてるなら漏れの調査不足、すんまそん。
子河童とかのことを言ってるなら、後付ツールじゃなくてCPPUnitになんで付いてないのかってこと。
こういうのがあるってことは欲しい人も多いはず。なんでないかなあと疑問に思うわけよ。
>>86
1.自動化するからGUIいらないのは理解できる。
  ただ雑誌とかで紹介されたときにインパクトが減らないかい?
2.あれ?漏れの勘違いか?こういう流れだと思ってたんだが。
  クラス定義作成→テストクラス定義作成→テストメソッド実装→クラス実装
                 ↑            ↑
                 ↑           この時点でテスト開始可能
               欲しいのはこの機能

88 :
>>87
> ただ雑誌とかで紹介されたときにインパクトが減らないかい?
cppunitの利用者にとっては関係の無い話なのでパス。
> 2.あれ?漏れの勘違いか?こういう流れだと思ってたんだが。
>  クラス定義作成→テストクラス定義作成→テストメソッド実装→クラス実装
原理主義的に言えば、存在しないクラスに対するテストコードを書いて、
コンパイルが失敗するところからテストが始まります。
とはいえ、最小限のクラス定義をしてから、テストコードを書くという手順に
してもいいと思うんですが、その場合のテストクラス定義はそれこそ
簡単なスクリプトを書けばよいと思うんですが。あるいは、最低限の
テンプレートファイルを作っておくとか。

89 :
>88
> cppunitの利用者にとっては関係の無い話なのでパス。
> 簡単なスクリプトを書けばよいと思うんですが。
やっぱり行き着くところはそこですか・・・
eclipse + JUnit をみてるとねえ・・・
こういうのが提供されないってことはC++の時代は終わりなのかな・・・

90 :
そんなに欲しいなら自作してsourceforgeあたりで公開すれ。C++使いだろ?

91 :
>>89
参考までに、そのeclipse+JUnitでどういうことができているのか、簡単に
教えていただけませんか?

92 :
>>90
いや違うって。「欲しい」=「作ろう、作って」じゃないって。
ただ単に漏れはスレタイ通りに語ってるだけ。
CPPUnitをどうこうしようって気はさらさらないYO!
>>91
こことかを参考にどうぞ。
http://www.atmarkit.co.jp/fjava/devs/xpd05/xpd05.html

93 :
>>92
なるほど。情報サンクス。
こういうのが欲しければ、VCのプラグインを書く必要があるのかな?
私の場合は必要なものはすべてrubyで書いているので、あまり
欲しいとは思いませんでした :-P

94 :
> 82
> 2.テストしたいクラスから自動的にテストクラス作るくらいやってくれたらいいのに。
>   (スクリプト書けばいいとか言うのは問題外。面倒。)
Visual Studioでよければ、TestClass作成マクロが同封されているわけだが。
もっとも、「テストしたいクラスから自動的」ではないけどな。
そのへんはコピペしる。

95 :
リファクタリング機能が言語側にないC++では、(TestCaseを作るのは)難しい。

96 :
リファクタリング機能が言語にあるって何?

97 :
>>95
リフレクションの間違えでは?

98 :
実行時に動的に情報を取得するわけではないから、リフレクションの有無は関係ないよ。

99 :
cppunitの質問なんですけど、
標準出力とかの、外部に対して作用する処理のテストはできないですか?
書き出したファイルの書式が合ってるかどうかとか。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Ruby で GUI するスレ (375)
リファクタリングをただのコード修正と思ってる人へ (268)
C言語なら俺に聞け(入門編)Part 100 (1001)
VB.NET質問スレ(Part38) (811)
★初心者にVisual C++を教えるスレ★ Part38 (269)
Google Maps API 質問箱 (312)
--log9.info------------------
こんな建設機械は嫌だ (370)
マナーの悪い一般車を語るスレ【全国虎糊の会】 (879)
不正軽油・ガソリン売ってるとこ教えてください (181)
●×☆全国の草ヒロ・廃車天国☆×● (241)
★愛国丸船団★ (147)
☆関東み組☆ (684)
愛知・岐阜・三重のダンプ運転手の集い (769)
太子・龍野・高砂・加古川・明石・姫路ダンプ屋情報 (405)
こんないすゞ自動車はイヤだ! (353)
日産ディーゼル・ビッグサム (233)
トラックのテールランプについて (119)
軽トラック総合スレッドpart3 (237)
【トラック野郎】あき竹城PART8【豊満】 (400)
バスみたいなトラック (117)
トラック運転手はドキュンのホームラン王ですF】 (880)
大型トラックは側道に止めるな! (186)
--log55.com------------------
【PS4】ウイニングイレブン2018 part14
【Xbox360/XboxONE】Forza Horizon総合63【FH】
【PS4】 New みんなのGOLF 60H目【みんゴル】
栄冠オンスト専用スレ
実況パワフルプロ野球2018 ペナント専用 Part2
【GTS】GRAN TURISMO SPORT【Part.101】
【PS4/PS3/PSVITA】実況パワフルプロ野球 サクセススペシャルPart498
【PS4/PSVITA】実況パワフルプロ野球2018 Part26