单元测试C#,并测试私有方法

詹姆斯·雷德福德

我想测试GetParameters()以断言返回的值在该值内包括“ test =”。不幸的是,负责此操作的方法是私有的。有什么方法可以为此提供测试范围吗?我的问题在下面突出显示:

if (info.TagGroups != null)

问题是在我的测试中info.TagGroups等于null

谢谢,

测试

[Test]
public void TestGetParameters()
{
    var sb = new StringBuilder();
    _renderer.GetParameters(sb);
    var res = sb.ToString();
    Assert.IsTrue(res.IndexOf("test=") > -1, "blabla");
}   

实施类进行测试

internal void GetParameters(StringBuilder sb)
{
    if (_dPos.ArticleInfo != null)
    {
        var info = _dPos.ArticleInfo;

        AppendTag(sb, info);

    }
}

private static void AppendTag(StringBuilder sb, ArticleInfo info)
{
    if (info.TagGroups != null)  // PROBLEM - TagGroups in test equals null
    {
        foreach (var tGroups in info.TagGroups)
        {
            foreach (var id in tGroups.ArticleTagIds)
            {
                sb.AppendFormat("test={0};", id);
            }
        }
    }
}

直接测试私有方法(相对于通过类的公共API间接测试)通常是个坏主意。但是,如果需要,可以通过反射来完成。

更好的选择是将代码重构为更具可测试性。有多种方法可以执行此操作,这是一种选择:

看来您要测试的逻辑在其中AppendTag这是一个静态方法,并且不会修改任何状态,所以为什么不将其公开并由测试直接调用呢?

同样,您还可以GetParameters通过为其添加附加ArticleInfo参数来使其成为公共静态对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Moq框架在C#中为私有方法编写单元测试?

来自分类Dev

Objective-C中的单元测试私有类

来自分类Dev

飞镖,单元测试私有方法

来自分类Dev

角度测试:使用私有方法测试角度服务

来自分类Dev

对类别中的私有方法进行单元测试?

来自分类Dev

检查单元测试中是否委托了所有方法

来自分类Dev

如何通过私有方法对任务进行单元测试

来自分类Dev

测试需要特定私有方法调用的单元?

来自分类Dev

通用方法的c#单元测试

来自分类Dev

C#中的私有静态方法的单元测试接受其他私有静态方法作为委托参数

来自分类Dev

在Akka中对私有方法进行单元测试

来自分类Dev

单元测试和私有变量

来自分类Dev

C#单元测试覆盖方法

来自分类Dev

是否可以为此Expression评估程序类的私有方法编写单元测试?

来自分类Dev

如何在ViewController单元测试中测试设置私有变量的方法?

来自分类Dev

单元测试,私有方法和隐藏抽象

来自分类Dev

验证私有方法是否获得调用单元测试

来自分类Dev

飞镖,单元测试私有方法

来自分类Dev

角度测试:使用私有方法测试角度服务

来自分类Dev

如何在单元测试时使用jmockit将空字符串传递给私有方法?

来自分类Dev

与私有集合相关的单元测试公共方法

来自分类Dev

在Groovy中测试私有方法

来自分类Dev

为什么我可以在单元测试类中访问私有方法

来自分类Dev

如何对测试私有方法并依次调用Web服务方法的公共方法进行单元测试

来自分类Dev

void 方法的单元测试 C#

来自分类Dev

C# 单元测试 - 检查是否达到了私有方法

来自分类Dev

C# - 如何在生产者/消费者场景中对私有方法进行单元测试?

来自分类Dev

私有方法的单元测试 c#

来自分类Dev

在单元测试中访问实例的私有方法

Related 相关文章

  1. 1

    如何使用Moq框架在C#中为私有方法编写单元测试?

  2. 2

    Objective-C中的单元测试私有类

  3. 3

    飞镖,单元测试私有方法

  4. 4

    角度测试:使用私有方法测试角度服务

  5. 5

    对类别中的私有方法进行单元测试?

  6. 6

    检查单元测试中是否委托了所有方法

  7. 7

    如何通过私有方法对任务进行单元测试

  8. 8

    测试需要特定私有方法调用的单元?

  9. 9

    通用方法的c#单元测试

  10. 10

    C#中的私有静态方法的单元测试接受其他私有静态方法作为委托参数

  11. 11

    在Akka中对私有方法进行单元测试

  12. 12

    单元测试和私有变量

  13. 13

    C#单元测试覆盖方法

  14. 14

    是否可以为此Expression评估程序类的私有方法编写单元测试?

  15. 15

    如何在ViewController单元测试中测试设置私有变量的方法?

  16. 16

    单元测试,私有方法和隐藏抽象

  17. 17

    验证私有方法是否获得调用单元测试

  18. 18

    飞镖,单元测试私有方法

  19. 19

    角度测试:使用私有方法测试角度服务

  20. 20

    如何在单元测试时使用jmockit将空字符串传递给私有方法?

  21. 21

    与私有集合相关的单元测试公共方法

  22. 22

    在Groovy中测试私有方法

  23. 23

    为什么我可以在单元测试类中访问私有方法

  24. 24

    如何对测试私有方法并依次调用Web服务方法的公共方法进行单元测试

  25. 25

    void 方法的单元测试 C#

  26. 26

    C# 单元测试 - 检查是否达到了私有方法

  27. 27

    C# - 如何在生产者/消费者场景中对私有方法进行单元测试?

  28. 28

    私有方法的单元测试 c#

  29. 29

    在单元测试中访问实例的私有方法

热门标签

归档