< Summary

Class:TestBase
Assembly:bamlab.test
File(s):/github/workspace/Assets/Tests/TestBase.cs
Covered lines:28
Uncovered lines:2
Coverable lines:30
Total lines:44
Line coverage:93.3% (28 of 30)
Covered branches:0
Total branches:0
Covered methods:6
Total methods:6
Method coverage:100% (6 of 6)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetPrivateField[T](...)0%110100%
GetPrivateField[T](...)0%110100%
InvokePrivateMethod[T](...)0%110100%
InvokePrivateMethod(...)0%110100%
GetFieldInfo(...)0%2.062075%
GetMethodInfo(...)0%2.062075%

File(s)

/github/workspace/Assets/Tests/TestBase.cs

#LineLine coverage
 1using System;
 2using System.Reflection;
 3using NUnit.Framework;
 4using UnityEngine;
 5
 6public abstract class TestBase {
 67  protected void SetPrivateField<T>(object obj, string fieldName, T value) {
 68    FieldInfo field = GetFieldInfo(obj, fieldName);
 69    field.SetValue(obj, value);
 610  }
 11
 112  protected T GetPrivateField<T>(object obj, string fieldName) {
 113    FieldInfo field = GetFieldInfo(obj, fieldName);
 114    return (T)field.GetValue(obj);
 115  }
 16
 2717  protected T InvokePrivateMethod<T>(object obj, string methodName, params object[] parameters) {
 2718    MethodInfo method = GetMethodInfo(obj, methodName);
 2719    return (T)method.Invoke(obj, parameters);
 2720  }
 21
 3422  protected void InvokePrivateMethod(object obj, string methodName, params object[] parameters) {
 3423    MethodInfo method = GetMethodInfo(obj, methodName);
 3424    method.Invoke(obj, parameters);
 3425  }
 26
 727  private FieldInfo GetFieldInfo(object obj, string fieldName) {
 728    var type = obj.GetType();
 729    var field = type.GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance);
 730    if (field == null) {
 031      throw new Exception($"Field '{fieldName}' not found in type '{type.FullName}'.");
 32    }
 733    return field;
 734  }
 35
 6136  private MethodInfo GetMethodInfo(object obj, string methodName) {
 6137    var type = obj.GetType();
 6138    var method = type.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);
 6139    if (method == null) {
 040      throw new Exception($"Method '{methodName}' not found in type '{type.FullName}'.");
 41    }
 6142    return method;
 6143  }
 44}