從概念上講,我對事件本身有點失落,所以這裏的任何信息都會有幫助。單元測試Vb.net中的RaiseEvent僅使用MSTest + MSFakes
具體來說,我有一個非常簡單的屬性設置這引起了一個事件,我想確認
- 是引發此事件也
- 適當的參數已經傳遞到所述事件。 (雖然2.對於這個特定事件可能是不必要的)。
我試圖在我的單元測試項目中包含開銷,也就是說,避免在被測試的項目中進行任何額外的編碼。
代碼如下。
Public Class myItem
Shared Event ItemOpened As EventHandler(Of EventArgs)
.........
Public Property Open() As Boolean
Get
Return mOpen
End Get
Set(ByVal value As Boolean)
mOpen = value
RaiseEvent ItemOpened(Me, New EventArgs)
End Set
End Property
所有代碼都在VB.net中完成,這是爲什麼我還沒有找到足夠好的資源在線的主要原因。此外,我沒有使用第三方模擬框架,如Nunit或RhinoMock,而只使用VS2012中的單元測試框架中構建的MS。
此外,類似地,我想測試某些setter方法例如如下FirePropertyChangedNotification()
....
Public Property myBool() As Boolean
Set(ByVal Value As Boolean)
FirePropertyChangedNotification("myBool")
mViewOnly = Value
End Set
End Property
在其FirstPropertyChangedNotification()
是如下.....
Protected Sub FirePropertyChangedNotification(ByVal propName As String)
If Not Initializing Then
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
RaiseEvent EntityChanged(Me, New PropertyChangedEventArgs(propName))
End If
End Sub
具有接口與轉換.....班「蘇特」必須實現麻煩「事件的PropertyChanged(發送者爲對象,E作爲PropertyChangedEventArgs)」「系統.ComponentModel.INotifyPropertyChanged' –
只需用你自己的類代替'Sut'。我相信你已經在你自己的代碼中正確實現了這個事件:) – jessehouwing
這段代碼現在可以在我的機器上運行。生鏽是輕描淡寫...... – jessehouwing