我想测试 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);
}
}
}
}