12

はい、私は時代遅れであることを知っていますが、ここにあるのは古い VB6 エディター アプリであり、.NET にすぐにアップグレードする人はいないと思います。いくつかのサード パーティの DLL ツールを使用しており、古き良き RichEdit コントロールをまだ使用しているため、基本的にこのツールだけで独自のバグ ファームを作成できます。

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

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

  1. このVB6アプリでTDDを使用するための優れたツール/リソースを知っている人はいますか? [念のため、後で .NET にアップグレードすることをお勧めします。]
  2. または、回避策を介して.NET、つまりNUnitなどの単体テストフレームワークを実際に使用できますか?
  3. それとも、これを実現するためのさらに素晴らしい方法はありますか?

ありがとう :)

編集:

私は vbunit をいじってみましたが、既存のアプリに追加する簡単な方法がないか、少なくとも私のノウハウには追加できないことがわかりました。したがって、これもvb-lite-unitとこのcomunitで遊ぶことがわかりました。さらに、vb6 で NUnit を使用できると言う人もいますが、そのリソースはさらに少なくなります。

4

3 に答える 3

10

SimplyVBUnit を使用して非常にスムーズな TDD を経験しました。コードに付属しているサンプルは、一目瞭然だと思いました。

起動時に最初に読み込まれたフォームには、コントロールが含まれています。次に、 Form_Load サブで次のことを行います。

 AddTest New TestDifferentAsserts

TestDifferentAsserts は vb クラスです。次のようになります。

Public Sub TestFloatCompareTolerance()
   ' we will use the default tolerance of 0.00001
   Assert.AreEqual 9#, 9.000001, "Should be equal!"

   ' The Expected value must be a Double or Single
   ' for the tolerance to be used in the comparison.
   Assert.AreEqual 9, 9.000001, "This will fail because we didn't use a float for the expected value."
End Sub

実際、明日、コンピューターにvb6をリロードして、単にvbunitでコンピューターをハックします。

[追加編集]

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

プロジェクト エクスプローラー

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

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

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

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

于 2009-01-22T06:36:35.153 に答える
6

私は、巨大な VB6 アプリケーションを .NET に移行しようとしている状況にいます。移行されたバージョンは完全に単体テストされています。

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

  • 方法論: 最初にテストし、その後にコードを記述します..
  • アーキテクチャ: SoC、結束、DRY、...
  • テクノロジー: フレームワークのテストとモック化、IoC コンテナーなど

このソリューションは、移行されたバージョンのコード品質を大幅に改善しています。テストを容易にする方法で物事を構築する方法を理解しているからです。また、VB6 と .NET バージョンで同じテストを使用する可能性もあります。

このソリューションが問題に対して過剰に設計されているかどうかはわかりません。あなたの状況に適用可能または適切であるかどうかを評価する必要があります。

よろしく。

于 2009-01-22T10:44:03.093 に答える
6

VBUnitは、VB6 プロジェクトの以前のクライアントでうまく機能しました。

于 2009-01-22T01:50:46.430 に答える