免責事項:私はRubberduckのGitHubのリポジトリを所有し、私はこのプロジェクトに関わる開発者の一人です。
Rubberduckが現在開発中です。これは、しかし、VBAのためのユニットテストツールよりずっと以上だが、それはかなりうまく動作しますが、任意の決まり文句なしにかなりのVBAのユニットテストを書くことができます:
'@TestModule
Private Assert As New Rubberduck.AssertClass
'@TestMethod
Public Sub TestMethod1()
Assert.Inconclusive "Test method is not written yet."
End Sub
'@TestMethod
Public Sub AnotherTestMethod()
Assert.IsTrue False, "Something's wrong?"
End Sub
そして、あなたの試験方法をナビゲートし、実行するために取得しますドッキングされたツールウインドウでは、アレンジ・アサーションメソッド・スタブを素早く追加するためのメニューも提供されます。また、AssertClass
もレイト・バインドできますので、開発以外の場所でRubberduckを配備することを心配する必要はありませんコードをコンパイル可能な状態に保ちます。 RubberduckのGitHubのリポジトリに
unit testing wiki pageは、それを使用する方法について説明しているほとんどすべてを説明します。
最新2.1プレリリースバージョンは、文字通りに標準ライブラリを回すことによって、通常のユニットテストを妨害する標準ライブラリ・コールの数をハイジャックするために使用することができ、「偽物」の枠組みの始まりを含みますより多くの機能をカバーするFakes
APIは歓迎以上であることを拡大する
'@TestMethod
Public Sub TestMethod1()
On Error GoTo TestFail
Fakes.MsgBox.Returns 42 ' MsgBox function will return 42
'here you'd invoke the procedure you want to test
Debug.Print MsgBox("This MsgBox isn't going to pop up!", vbOkOnly, "Rubberduck") 'prints 42
With Fakes.MsgBox.Verify ' Test will pass if MsgBox was invoked as specified
.Parameter "prompt", "This MsgBox isn't going to pop up!"
.Parameter "buttons", vbOkOnly
.Parameter "title", "Rubberduck"
End With
TestExit:
Exit Sub
TestFail:
Assert.Fail "Test raised an error: #" & Err.Number & " - " & Err.Description
End Sub
貢献:指定されているようRubberduckユニットテストのコンテキストで実行する場合MsgBox
通話を例えば、動作するように設定することができ、「テスト偽物」。カバーFileSystemObject
の呼び出しは特に有用です。
興味があるかもしれません:http://stackoverflow.com/questions/1792188/how-to-setup-a-unit-test-in-vba-excel-macro – Fionnuala
ありがとう、私は見てみましょう。 –