私は古いVB6アプリケーションでSimplyVBUnitを使用してきました。それは素晴らしい。 100以上のテストがあります。しかし、私はアプリケーションとの統合のために大きく変更しなければなりませんでした(例えば、ヘルプメニューに移動してUnit Testsを実行できるようにするため)。UIを実際の実装から分離したので、UIには依存しません。
VB6には反射がなく、TLBINF32.DLLは外部DLLでしか動作しないため、SimplyVBUnitをアプリケーションに統合したい場合は、そのDLLを使用することはできません。アプローチ
あなたはITestCaseから継承したActiveX DLLでユニットテストクラスを作成するには、RUNTESTというメソッドを実装するメソッド内で、次があります。。
Private Sub ITestCase_RunTest(ByVal TestNum As Long, TestName As String, ExpectErrNum As Long, EndOfTests As Boolean)
Dim objTestNum As New TestNumGenerator
Select Case TestNum
Case objTestNum.NextNumber
TestName = "Instantiate an APDebit Object"
Test_InstantiateAPDebitObject
Case objTestNum.NextNumber
TestName = "Create an APDebit record."
Test_CreateAPDebit
Case objTestNum.NextNumber
TestName = "Load an APDebit record."
Test_LoadAPDebit
Case Else
EndOfTests = True
End Select
End Sub
次に、あなたのクラスをUnitTestフレームワークに渡し、RunTestメソッドを呼び出します。
実装からUIを切り離したい場合は、コードを共有できます。
あなたはソースがリリースされていると言いますが、それを調べて調べるのはなぜですか?リフレクションは、動的コンパイルよりも単体テストフレームワークにとってはるかに重要である可能性が高いことに注意してください。 –
ご質問をお書きください。私はソースを読もうとしましたが、あなたが想像しているように、それはやや複雑で、どのように動作するのか理解できませんでした。明らかに私がここで合理的な答えを得なければ、私は自分自身でそれを試し続けていきますが、これまでのところ、幸運はありません! –
@Maxim:あなたを混乱させるコードベースにどうやって入ろうとしているのでしょうか?あなたがすでに試したこと、どれだけ持っているかなどを説明します。コードをビルドしてデバッガで動作させましたか?単体テストの実行中にブレークポイントに達したことがありますか?スタックトレースを確認しましたか?コードの*ビット*があなたを混乱させていますか? –