vb.net - Why does RhinoMocks behave differently in VB & C#? -


i have test code similar this:

public interface idosomething    function dosomething(index integer) integer end interface  <test()> public sub shoulddosomething()    dim mymock idosomething = mockrepository.generatemock(of idosomething)()     mymock.stub(function(d) d.dosomething(arg(of integer).is.anything))       .whencalled(function(invocation) invocation.returnvalue = 99)       .return(integer.minvalue)     dim result integer = mymock.dosomething(808)  end sub 

this code doesn't behave expected though. variable result contains integer.minvalue not 99, expected.

if write equivalent code in c# works anticipated: result contains 99.

any ideas why?

c# equivalent:

public interface idosomething {    int dosomething(int index) }  [test()] public void shoulddosomething() {    var mymock = mockrepository.generatemock<idosomething>();     mymock.stub(d => d.dosomething(arg<int>.is.anything))       .whencalled(invocation => invocation.returnvalue = 99)       .return(int.minvalue);     var result = mymock.dosomething(808); } 

the difference function(invocation) invocation.returnvalue = 99 inline function returning boolean, invocation => invocation.returnvalue = 99 inline function returning 99 , setting invocation.returnvalue 99.

if you're using late enough version of vb.net can use sub(invocation) invocation.returnvalue = 99 unless whencalled expects return value.


Comments