12


9

うん私は私が時代遅れだと知っているが、私がここで持っているのは誰もすぐに.NETにアップグレードしないと信じているアンティークVB6エディタアプリです。 それはまだいくつかのサードパーティ製のDLLツールを使用しています、そしてそれはまだ古き良きRichEditコントロールを使用しているので私は基本的にこのツールだけで私自身のバグファームを上げることができます。

それで十分です。TDDを使用できるかどうかを確認して、修正が必要な各動作/機能ごとに単体テストを作成できるようにします。遅かれ早かれこのツールの完全な回帰テストスイートを入手できます。 そして、将来的にも.NETにアップグレードしたとしても、私が書いたテストの大部分は正しい振る舞いを検証するのに役立つはずであり、.NETバージョンにもアップグレードできるはずだと思います。

いくつかの基本的なグーグルはこのツール呼び出し simplyVBunitに私を送ります、しかし私は私を始めるために十分なガイドなどを見つけることができませんそしてはい私はVB6でもそれほど熟練していません:(

  1. それで、誰もが私がこのVB6アプリのためにTDDを使用するために何か良いツール/リソースを知っていますか? [できれば念のため、後で.NETにアップグレードできることが望ましい。]

  2. または私は実際に.NET用のユニットテストフレームワークを使うことができます。 NUnitなど、回避策はありますか?

  3. それとも、これを実現するためのさらに素晴らしい方法はありますか?

ありがとう:)

編集:

私はvbunitをいじってみましたが、私はそれを既存のアプリに追加する簡単な方法はない、あるいは少なくとも私のノウハウはそうではないことを知りました。 したがって、私はこれで遊ぶことがわかりました、 vb-lite-unitそしてまたこのhttp://comunit.sourceforge.net/?page=download .html [comunit] さらに NUnit with vb6を使用できると言っている人もいますが、それについてのリソースはさらに少ないです。

3 Answer


10


私はSimplyVBUnitを使用して非常にスムーズなTDDの経験をしました。 私はコードが付属するサンプルはかなり自明であると思いました。

起動時に最初に読み込まれたフォームにコントロールが含まれています。 それからForm_Loadサブであなたは:

AddTest新しいTestDifferentAsserts

TestDifferentAssertsはvbクラスです。 それはこのようになります:

Public Sub TestFloatCompareTolerance() 'デフォルトの許容誤差0.00001を使用しますAssert.AreEqual 9#、9.000001、「等しくなければなりません」

許容誤差を比較に使用するには、「期待値は2倍または1倍でなければなりません」。 Assert.AreEqual 9、9.000001、 "期待値にfloatを使用しなかったのでこれは失敗します。"終了サブ

実際のところ、明日はsimplyvbunitを使って自分のコンピュータをハックするために自分のコンピュータにvb6をリロードしています。

{空} [追加編集]

これは私のVB6プロジェクトエクスプローラです。

画像:https://i.stack.imgur.com/RAOtC.png [プロジェクトエクスプローラ、幅= 420、高さ= 295]

Form1はsimplyvbunitコントロールが配置されている場所です。

このプロジェクトの ソースコード

あなたがサードパーティのコントロールを持っているなら、誰が気にしていますか。 ファサードでそれらを包みます。 次にファサードからスタブを作成します。

さらに支援が必要な場合は、コメントを残してください。


6


http://www.vbunit.com/[VBUnit]はVB6プロジェクトの以前のクライアントで私のためにうまくいった。


6


私たちは.NETに移行される途上にある巨大なVB6アプリケーションを持っていたのです。 移行されたバージョンは完全に単体テストされています。

我々がとったアプローチはCOM相互運用機能を介して.NETからVB6アプリケーションを単体テストすることです。 これまでに発見した主な利点は、VB6開発者がTDD(そしてそれが意味するものすべて)を学ぶことになるということです。

  • 方法論:最初にテストし、その後コードを作成します。

  • アーキテクチャ:SoC、結束、DRY、…​

  • テクノロジー:テストとモックフレームワーク、IoCコンテナ…​

このソリューションは、テストを容易にするような方法でアーキテクチャを構築する方法を理解しているため、移行されたバージョンのコード品質を大幅に向上させています。 また、VB6と.NETバージョンで同じテストを使用する可能性があります。

この解決策があなたの問題に対して過剰にアーキテクチャ化されているかどうかわからない。 あなたはあなたの状況に適用可能か適切かを評価すべきです。

よろしく。