カテゴリー
VB6

VBUnitを使うときに注意する点

.NETへ移行するにはあまりにもマンパワーが足りなさすぎなので、せめてユニットテストできるようにと考え、既存の巨大なVB6のプロジェクトでVBUnitを導入してみようとしてみました。

しかし、うまくいかず。なぜかというと、
・Endをとにかくあちこちで使ってある
 DLLでEnd命令はサポートされていないため、コンパイルオプションなどで回避する必要がある。そもそも、いきなりEndするのはどうなんだ?!
・モジュール間が密接につながっていて、すべてのモジュールをテストプロジェクトにいれないといけない
 中にはテストプロジェクトに入れたくないものもあるのですが、全部つながっちゃってるので、仕方ない。
・MDIフォームも使えない
 上と関連してつながっているので入れるしかないのだが、MDIフォームはDLLに含められない。ダミーのフォームとかで置き換えるしかない?!
・Spread2.5はマルチスレッド対応ではないのでうんぬんのエラーが出る
 Spread2.5という割と古いOCXを使っているが、そいつがマルチスレッド対応ではないらしくそもそもだめ。
もともと、VBUnitでテストすることを考えていないので、いろいろと障害ありまくりです。
なるべく回避するようにがんばってみたのですが、VBUnitのテストツールがうまく起動せず結局断念。
逆に言えばここにあげられていることを念頭に置いて最初から作ればテストできそうではあるんですがね。
ユニットテストが出来るようになれば、だいぶ問題は解決するのですが、難しいものです。
1万5000行オーバーもあるモジュールなんて見たくないぞー(T_T)
しかもそれが一つだけではなかったりする・・・
VB6でやっていける限界まで来てるような気がするなぁ。
修正漏れは多発してるし、変更すると思わぬところでバグが発生してしまうというのも多発。時間が足りなくてテストが出来ていないのもあるが、構造的な問題もある。
だから、ユニットテストを導入したいんですけどね。むう。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、Windowsに出戻り。最近はまっているのはハンターカブというバイクとBlackmagic Pocket Cinemaでの動画撮影です。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で20年!

Youtube / Twitter

コメントは受け付けていません。