I'm using Visual Studio 2015 Update 3. I installed JustMock and JustCode using Telerik Control Panel. I created a project using the C# JustMock template. Both JustMock and JustCode are working, except that I'm not seeing the Create Mock or Arrange Mock menus in JustCode as described here. Neither the visual aid or or the JustCode menu shows the menus. This is happening on two different computers. Any ideas?
Thanks,
Joel
It looks like having the JustMock profiler enabled when attempting to work on .NET Core projects causes some kind of issue that makes it impossible to compile or run the code.
I had the exact same issue detailed here: http://www.lpaneque.com/2016/05/justmock-and-failed-to-initialize-coreclr.html and disabled the profiler (just like the author) and I was able to successfully develop .NET core apps after.
Public Class PrivateMethodDoInstead Private Function GetSomeQuantity(ByRef quantity As Long) As Boolean '....get quantity from the database code would be here Return quantity > 0 End Function Public Function HandleRecords() As Boolean Dim quantity As Long Dim returnValue As Boolean = GetSomeQuantity(quantity) If returnValue Then StoreTotals(quantity) End If Return returnValue End Function Private Sub StoreTotals(quantity As Long) ' do something End SubEnd ClassMock.Arrange(Function() testInstance.GetSomeQuantity( Arg.IsAny(Of Long)) ).DoInstead(Function(ByRef quantity As Long) As Boolean quantity = 5 Return True End Function).Returns(True)I had a first try with JustMock on a Linux build machine (Jenkins) and xunit (Mono 4.6 is installed there). Unfortuntely, I get the following exception (one of them):
01.Tnsa.Foundation.Test.Composition.Internal.CompositionContextServiceProviderAdapterTest.GetService_ExportFactories_enumerable_generic_2_success [FAIL]02. System.Runtime.Remoting.RemotingException : Cannot get the real proxy from an object that is not a transparent proxy.03. Stack Trace:04. at System.Runtime.Remoting.RemotingServices.GetRealProxy (System.Object proxy) [0x0000b] in <94fd79a3b7144c54b4cb162b50fc7761>:0 05. at Telerik.JustMock.Core.TransparentProxy.MockingProxy.GetRealProxy (System.Object instance) [0x00005] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 06. at Telerik.JustMock.Core.TransparentProxy.MockingProxy.GetMockMixin (System.Object instance) [0x00000] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 07. at Telerik.JustMock.Core.MocksRepository.GetMockMixinFromAnyMock (System.Object mock) [0x00000] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 08. at Telerik.JustMock.Core.MocksRepository.GetMockMixin (System.Object obj, System.Type objType) [0x00000] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 09. at Telerik.JustMock.Core.MocksRepository.ConvertExpressionToCallPattern (System.Linq.Expressions.Expression expr, Telerik.JustMock.Core.CallPattern callPattern) [0x00564] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 10. at Telerik.JustMock.Core.MocksRepository.Arrange[TMethodMock] (System.Linq.Expressions.Expression expr, System.Func`1[TResult] methodMockFactory) [0x00049] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 11. at Telerik.JustMock.Helpers.FluentHelper.DoArrange[TContainer] (System.Object obj, System.Type objType, System.Linq.Expressions.LambdaExpression expression, System.Func`1[TResult] containerFactory) [0x00036] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 12. at Telerik.JustMock.Helpers.FluentHelper+<>c__DisplayClass2`2[T,TResult].<Arrange>b__0 () [0x0002e] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 13. at Telerik.JustMock.Core.ProfilerInterceptor.GuardInternal[T] (System.Func`1[TResult] guardedAction) [0x0000c] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 14. at Telerik.JustMock.Helpers.FluentHelper.Arrange[T,TResult] (T obj, System.Linq.Expressions.Expression`1[TDelegate] expression) [0x00020] in <45764d21e4e34d73b89fbb0a6b2e6054>:0 15. at Tnsa.Foundation.Test.Composition.Internal.CompositionContextServiceProviderAdapterTest.GetService_ExportFactories_enumerable_generic_2_success () [0x0006f] in <e1aa8dcdd51045fda2db8ea7350c0c44>:0 16. at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)17. at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <94fd79a3b7144c54b4cb162b50fc7761>:0
Is this scenario supported on Linux/Mono at all? Can I do something to make this work?
Thanks, Ioan
For some reason, the ReturnsMany method does not work for me. I have the follwing code:
List<ORGANIZATION> existingOrganizations = new List<ORGANIZATION>() { new ORGANIZATION() {ID = 1, NAME = "Organization1", ISINCLUDEDINSAMPLE = false}, new ORGANIZATION() {ID = 2, NAME = "Organization2", ISINCLUDEDINSAMPLE = false}, new ORGANIZATION() {ID = 3, NAME = "Organization3", ISINCLUDEDINSAMPLE = false}, };
container.Arrange<IOrganizationRepository>(or => or.GetById(Arg.AnyLong)).ReturnsMany(existingOrganizations);
And the exception I'm getting:
System.InvalidCastException : Unable to cast object of type 'System.Collections.Generic.List`1[Cpims.WFM.Domain.Organizations.ORGANIZATION]' to type 'Cpims.WFM.Domain.Organizations.ORGANIZATION'. at Castle.Proxies.IOrganizationRepositoryProxy.GetById(Int64 primaryKey, Expression`1[] includeNavigationProperties)
In a method like
void ReturnIfObjectIsNull() { var obj = new SomeObject(); if (obj == null) return; // Do other stuff.. }
How do I assert that the early return fired (without asserting that the stuff that would have happened afterword never occurred).
Asserting the object is null is not enough. I would need to assert that he function returned early when the object was null.
Thanks.
// Obtain an HTTP web Request object for the desired URI var Request = WebRequest.Create(strUri) as HttpWebRequest; if (Request != null) { Request.KeepAlive = false; Request.Method = "GET"; Request.ContentType = "application/ems-v3+xml"; // Obtain the HTTP web response using (var Response = Request.GetResponse() as HttpWebResponse) { // Read the response text stream (the XML) into a local string if (Response != null) using (var ResponseStreamReader = new StreamReader(Response.GetResponseStream())) { //get XML Result result = ResponseStreamReader.ReadToEnd(); } } }