首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSubstitute可以模拟MethodInfo的返回吗?

NSubstitute可以模拟MethodInfo的返回吗?
EN

Stack Overflow用户
提问于 2017-01-29 14:36:47
回答 1查看 829关注 0票数 3

我的测试使用了很多反射。NSubstitute可以模拟反射属性(PropertyInfo),如下所示:

代码语言:javascript
复制
mock
.GetType().GetTypeInfo()
.GetProperty("SomePropertyName")
.GetValue(mock)
.Returns(someReturnValue);   // NSubstitute does its thing here

如何对MethodInfo执行类似的操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-30 03:02:05

如下所示:

代码语言:javascript
复制
  internal class Program
  {
    private static void Main()
    {
      var mock = Substitute.For<SomeClass>();
      var mi = mock.GetType().GetTypeInfo()
        .GetMethod("SomeMethod", BindingFlags.NonPublic | BindingFlags.Instance);

      mi.Invoke(mock, null).Returns("xxxxXXX");

      Console.WriteLine(mi.Invoke(mock, null)); // -> Write xxxxXXX
    }
  }

  public class SomeClass
  {
    protected virtual string SomePropertyName { get; set; }

    protected virtual string SomeMethod() => "aaa";
  }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41918308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档