Tôi đang cố gắng nâng cao sự kiện trong giao diện giả. Tôi có thể nhận được điều này trong C#, nhưng đối với một số lý do đau-in-the-mông không thể làm cho nó hoạt động trong VB.Net. Nếu ai đó có thể giúp tôi với tình huống này, tôi sẽ đánh giá cao nó. Hy vọng rằng tôi đã không bỏ lỡ thuyền khái niệm và tất cả tôi đang thiếu là một số cú pháp. Điều này tương tự mã Tôi đang làm việc với:Làm cách nào để tăng sự kiện bằng cách sử dụng Moq?
Public Interface ISendable
Event SendMessage(message As String)
End Interface
''**********
Public Interface IPrintable
Sub PrintAnnouncement(announcement As String)
End Interface
'******
Public Class BulletinBoard
Private mPrintable As IPrintable
Public Sub New(sendable As ISendable, printable As IPrintable)
AddHandler sendable.SendMessage, AddressOf GetItOut
mPrintable = printable
End Sub
Public Sub GetItOut(message As String)
'Do some stuff I can verify happened with Moq
mPrintable.PrintAnnouncement(message)
End Sub
End Class
Tôi đã hy vọng để có được một bài kiểm tra đó nhìn cái gì đó như chạy này:
Imports NUnit.Framework
Imports Moq
<TestFixture()> _
Public Class SendMessageTests
<Test()> _
Public Sub canRaiseEvent()
Dim announcement As String = "What the?"
Dim sendable As New Mock(Of ISendable)()
Dim printable As New Mock(Of IPrintable)()
Dim bb As New BulletinBoard(sendable.Object, printable.Object)
'What is the syntax for raising sendable's event?
'sendable.Raise(....?)
printable.Verify(Sub(d) d.PrintAnnouncement(announcement), Times.Once())
End Sub
End Class
bất cứ ai có thể giúp tôi để hoàn thành hoặc sửa dòng trong lớp thử nghiệm của tôi bắt đầu "sendable.Raise ..."? Có lẽ có nhiều thiết lập tôi cần phải làm, nhưng trang web Moq dường như không chỉ ra đây là trường hợp.
Xin cảm ơn trước.
Tuyệt vời, nemesv - chỉ là những gì tôi đã làm sau. Cảm ơn bạn đã trả lời quá nhanh. – RobC