|
From: Chris B. <chr...@ho...> - 2004-12-08 15:42:58
|
When ever I use NMock with overloaded methods in VB.NET I receive an ExecutionEngineException exception. I have created a simple project to demonstrate the problem using a collection. Interfaces: Public Interface IFile ReadOnly Property FileName() As String End Interface Public Interface IFileCollection Inherits IList Overloads Sub Add(ByRef file As IFile) End Interface Factory class: Imports NMock Friend Class Factory Public Shared FileCollectionToReturn As Mock Public Shared FileToReturn As Mock Public Shared Sub Reset() FileCollectionToReturn = Nothing FileToReturn = Nothing End Sub Private Sub New() End Sub Public Shared Function GetFileCollection() As IFileCollection Return CType(FileCollectionToReturn.MockInstance, IFileCollection) End Function Public Shared Function GetFile() As IFile Return CType(FileToReturn.MockInstance, IFile) End Function End Class Class to test: Public Class Sample Public Sub DoStuff() Dim file As IFile = Factory.GetFile() Dim collection As IFileCollection = Factory.GetFileCollection() collection.Add(file) End Sub End Class Test: Imports NMock Imports NUnit.Framework <TestFixture()> _ Public Class SampleUnitTests <Test()> _ Public Sub TestDoStuff() Factory.Reset() Dim collection As Mock = New DynamicMock(GetType(IFileCollection)) Factory.FileCollectionToReturn = collection Dim file As Mock = New DynamicMock(GetType(IFile)) Factory.FileToReturn = file collection.Expect("Add", file.MockInstance) Dim sampleClass As Sample = New Sample sampleClass.DoStuff() Collection.Verify() End Sub End Class If I do the same in C# it works as expected. Any help would be very appreciated. Regards, Chris. |