How to use MethodBodyDisassembler class of Telerik.JustMock.Core package

Best JustMockLite code snippet using Telerik.JustMock.Core.MethodBodyDisassembler

MockingUtil.PrivateMethods.cs

Source:MockingUtil.PrivateMethods.cs Github

copy

Full Screen

...311                    type = type.BaseType;312                }313                string expectedName = String.Format("<{0}>g__{1}|", string.IsNullOrEmpty(originalMethodName) ? method.Name : originalMethodName, localMemberName);314                MethodBody body = method.GetMethodBody();315                var disasembledBody = MethodBodyDisassembler.DisassembleMethodInfo(method);316                var callInstructions = disasembledBody.Where(instr => instr.OpCode == System.Reflection.Emit.OpCodes.Call).ToArray();317                foreach (var instruction in callInstructions)318                {319                    MethodBase methodBase = null;320                    try321                    {322                        methodBase = type.Module.ResolveMethod(instruction.Operand.Int);323                    }324                    catch (Exception)325                    {326                        //The exception is captured when the metadata token refers generic method.327                        //Do not handle the exception since there is no way to know in advance if the metadata token refers non-generic or generic method.328                    }329                    if (methodBase == null && localFunctionGenericTypes != null)...

Full Screen

Full Screen

MockingUtils.MethodBodyDisassembler.cs

Source:MockingUtils.MethodBodyDisassembler.cs Github

copy

Full Screen

...59				this.operand = operand;60				Module = module;61			}62		}63		internal class MethodBodyDisassembler64		{65			private static readonly HashSet<int> prefixes = new HashSet<int>66			{67				OpCodes.Prefix1.Value,68				OpCodes.Prefix2.Value,69				OpCodes.Prefix3.Value,70				OpCodes.Prefix4.Value,71				OpCodes.Prefix5.Value,72				OpCodes.Prefix6.Value,73				OpCodes.Prefix7.Value,74			};75			private static readonly Dictionary<short, OpCode> opCodeMap = new Dictionary<short, OpCode>();76			static MethodBodyDisassembler()77			{78				var opcodes = typeof(OpCodes).GetFields(BindingFlags.Public | BindingFlags.Static)79					.Where(field => field.FieldType == typeof(OpCode));80				foreach (var opcodeField in opcodes)81				{82					var opcode = (OpCode)opcodeField.GetValue(null);83					opCodeMap.Add(opcode.Value, opcode);84				}85			}86			public static IEnumerable<Instruction> DisassembleMethodInfo(MethodBase method)87			{88				var body = method.GetMethodBody();89				if (body != null)90				{...

Full Screen

Full Screen

MethodBodyDisassembler

Using AI Code Generation

copy

Full Screen

1using Telerik.JustMock.Core;2{3    public int GetInt()4    {5        return 1;6    }7}8{9    public int GetInt()10    {11        return 2;12    }13}14{15    public static void Main()16    {17        var a = new A();18        var b = new B();19        var method = typeof(A).GetMethod("GetInt");20        var methodBody = MethodBodyDisassembler.GetMethodBody(method);21        var instructions = methodBody.Instructions;22        var il = string.Join(" ", instructions.Select(x => x.ToString()));23        Console.WriteLine(il);24    }25}26using Telerik.JustMock.Core;27{28    public int GetInt()29    {30        return 1;31    }32}33{34    public int GetInt()35    {36        return 2;37    }38}39{40    public static void Main()41    {42        var a = new A();43        var b = new B();44        var method = typeof(B).GetMethod("GetInt");45        var methodBody = MethodBodyDisassembler.GetMethodBody(method);46        var instructions = methodBody.Instructions;47        var il = string.Join(" ", instructions.Select(x => x.ToString()));48        Console.WriteLine(il);49    }50}51using Telerik.JustMock.Core;52{53    public int GetInt()54    {55        return 1;56    }57}58{59    public int GetInt()60    {61        return 2;62    }63}64{65    public static void Main()66    {67        var a = new A();68        var b = new B();69        var method = typeof(Test).GetMethod("Main");70        var methodBody = MethodBodyDisassembler.GetMethodBody(method);71        var instructions = methodBody.Instructions;72        var il = string.Join(" ", instructions.Select(x => x.ToString()));73        Console.WriteLine(il);74    }75}

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run JustMockLite automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in MethodBodyDisassembler

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful