All right, As far as I see Rhino 3.6 AssertWasCalled with cannot be used in VB without some headache.
The problem is in the overload list: AssertWasCalled (action as Sub.... AssertWasCalled (action as Function(Mock, Object).... VB Lambda expressions can not do either - only AssertWasCalled (action as Function(Mock).... is allowed (yes, stupid VB) The only work around is use something like that: TestMock.AssertWasCalled(New Action(Of ITestMock)(Function(x) x.TestFunc()), Function(o) o.Repeat.twice) Too bad, the overload list was more "VB-friendly" in 3.5. On Oct 30, 12:03 pm, Alex McMahon <[email protected]> wrote: > ahh good, it's not just me then :) > > 2009/10/30 Tarpan <[email protected]>: > > > > > The VB's Lambda expressions screw-up is well-known for VB developers. > > This is not the issue in this case. > > > Anybody use VB and Rhino 3.6? How to write this in 3.6? I just cannot > > figure it out. > > TestMock.AssertWasCalled(Function(x) x.TestFunc, Function(options) > > options.Repeat.Once) > > > It worked fine in 3.5 but gives the "overload resolution failed" error > > in 3.6. > > > On Oct 30, 11:35 am, Alex McMahon <[email protected]> wrote: > >> I'm trying to write it in VB.net now to see if that's the problem... > >> and I'm struggling :) > > >> I wonder if this page has a clue to the > >> answer?http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/vb-net-rhino... > > >> 2009/10/30 Tarpan <[email protected]>: > > >> > Hmmmm.....Did I smoke a wrong weed this morning? :-) > > >> > It definitely does not work for me (the test passes). > >> > Let me try 3.6 - maybe it was an issue in 3.5 and has been fixed. > > >> > Alex, thank you for your efforts. > >> > BTW, I get more and more annoyed with VB. I don't like C# syntax > >> > either, but still it looks simpler than VB. > > >> > On Oct 30, 10:59 am, Alex McMahon <[email protected]> wrote: > >> >> Yes the test fails on my machine. > > >> >> If I comment out one of the testMock.TestFunc() then it passes. Works > >> >> with both GenerateStub<> GenerateMock<> and GenerateStrictMock<> as > >> >> long as I add: > > >> >> mock.Stub(x=>x.TestFunc()).Return(null); > > >> >> early on. > > >> >> I'm using Rhino Mocks 3.6 btw > > >> >> 2009/10/30 Tarpan <[email protected]>: > > >> >> > Does the test _fail_ on your machine? > > >> >> > On Oct 30, 10:39 am, Alex McMahon <[email protected]> wrote: > >> >> >> Works on my machine... I changed it to C# and the following works > >> >> >> (test fails). So maybe it's about it being in VB? > > >> >> >> public interface ITestMock > >> >> >> { > >> >> >> object TestFunc(); > >> >> >> } > > >> >> >> public class TestClass > >> >> >> { > >> >> >> ITestMock testMock; > > >> >> >> public TestClass(ITestMock testMock) > >> >> >> { > >> >> >> this.testMock = testMock; > >> >> >> } > > >> >> >> public void test() > >> >> >> { > >> >> >> testMock.TestFunc(); > >> >> >> testMock.TestFunc(); > >> >> >> } > >> >> >> } > > >> >> >> [TestClass] > >> >> >> public class UnitTest1 > >> >> >> { > >> >> >> [TestMethod] > >> >> >> public void TestMethod1() > >> >> >> { > >> >> >> var mock = MockRepository.GenerateMock<ITestMock>(); > >> >> >> var target = new TestClass(mock); > >> >> >> target.test(); > >> >> >> mock.AssertWasCalled(x => x.TestFunc(), o => o.Repeat.Once()); > >> >> >> } > >> >> >> } > > >> >> >> 2009/10/30 Tarpan <[email protected]>: > > >> >> >> > Guys, Here is a simple test: > >> >> >> > TestClass calls the TestMock twice and there is a > >> >> >> > Assert...Repeat.Once. The test runs just fine. > >> >> >> > I know I'm doing something wrong. But what? > > >> >> >> > ------------- > >> >> >> > Imports MbUnit.Framework > >> >> >> > Imports Rhino.Mocks > > >> >> >> > <TestFixture()> _ > >> >> >> > Public Class AAA_test > >> >> >> > <Test()> _ > >> >> >> > Public Sub Test1() > >> >> >> > Dim TestMock As ITestMock = MockRepository.GenerateStub(Of > >> >> >> > ITestMock)() > >> >> >> > Dim TestClass As CTestClass = New CTestClass > >> >> >> > TestClass.test(TestMock) > >> >> >> > TestMock.AssertWasCalled(Function(x) x.TestFunc, Function > >> >> >> > (options) options.Repeat.Once) > >> >> >> > End Sub > >> >> >> > End Class > > >> >> >> > Public Class CTestClass > >> >> >> > Public Sub test(ByVal TestMock As ITestMock) > >> >> >> > TestMock.TestFunc() > >> >> >> > TestMock.TestFunc() > >> >> >> > End Sub > >> >> >> > End Class > > >> >> >> > Public Interface ITestMock > >> >> >> > Function TestFunc() As Object > >> >> >> > End Interface > >> >> >> > ---------------- --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino.Mocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhinomocks?hl=en -~----------~----~----~----~------~----~------~--~---
