zoukankan      html  css  js  c++  java
  • NSubstitute.Analyzers检测NSubstitute用法冲突

    NSubstitute是一个.Net环境使用的,简洁,语法友好的Mock库。语法简洁的缺点是有一些失败的用法很难察觉和检测。比如试图mock一个非虚拟成员-NSubstitute不能看到这些成员所以不能沟通sub.Received().NonVirtualCall()的问题。多亏了现在有Roslyn编译器。我们现在有了能检测这些问题的方法。

    使用用法:

    使用Nuget安装NSubstitute.Analyzers.CSharp库。

    Install-Package NSubstitute.Analyzers.CSharp

    能检测的特性列表如下:

    NS1000

    在类的非virtual成员上使用

    • Returns()
    • ReturnsForAnyArgs()
    • ReturnsNull()
    • ReturnsNullForAnyArgs()
    • Throws()
    • ThrowsForAnyArgs()等特性

    NS1001

    在类的非virtual成员上使用

    • Received()
    • ReceivedWithAnyArgs()
    • DidNotReceive()
    • DidNotReceiveWithAnyArgs()

    等特性

    NS1002

    在类的非virtual成员上使用

    • When()
    • WhenForAnyArgs()

    等特性

    NS2000

    使用Substitute.ForPartsOf 创建接口或者代理。 解决方法是使用Substitute.For代替Substitute.ForPartsOf

    NS2001

    使用NSubstitute mock没有暴露公共或者保护构造方法的类。

    NS2002

    使用NSubstitute mock没有暴露无参构造方法的类。

    NS2003

    使用NSubstitute mock 内部类。

    NS2004

    使用NSubstitute mock的时候传递了错误的构造参数。

    NS2005

    一次替代多个类型

    NS2006

    mock接口的时候传递了参数。 只要将参数移除就可以解决这个问题

    参考:github目录

  • 相关阅读:
    Java回调函数
    ajax数据展示过程中中文乱码问题
    ajax数据传递过程中中文乱码问题
    HDInsight - 1,简介
    HBase初探
    String类
    谈谈用户体验中的表单设计-实践篇
    谈谈用户体验中的表单设计-理论篇
    Win CE 6.0 获取手持机GPS定位2----示例代码 (C#)
    Win CE 6.0 获取手持机GPS定位1----基础知识 (C#)
  • 原文地址:https://www.cnblogs.com/Martianhh/p/10109311.html
Copyright © 2011-2022 走看看