0

我想使用 Pex 对以下代码进行单元测试:

    private string GetOriginalFieldName(string p)
    {
        var strMapField = string.Empty;
        foreach (GridViewRow row in gdFields.Rows)
        {
            var strOriginal = row.Cells[0].Text;
            var txt = (TextBox)row.Cells[1].FindControl("txt");
            switch (string.Compare(p, strOriginal, true))
            {
                case 0:
                    if (txt.Text != null) return txt.Text;
                    break;
                default:
                    if (string.Compare(p, strOriginal + ":", true) == 0)
                    {
                        if (txt.Text != null) return txt.Text;
                    }
                    else
                    {
                        strMapField = p;
                    }
                    break;
            }
        }
        return strMapField;
    }

此函数从 gridview 行中搜索文本并将输入字符串替换为 gridview 的 mapfield。

如何使用 Pex 进行单元测试?

4

1 回答 1

1

我认为你不能在这种类型的单元测试中使用 PEX,因为你有一个 GridView ( gdFields) 的实例,它需要被实例化才能使测试工作。在这种情况下,您可能需要查看Moles,它是一个隔离框架,可以让您创建 GridView 控件的假实例。

不知何故,您需要使用假文本框等创建一个假 GridView,以便代码在没有NullReferenceException.

现在我对 Moles 没有经验,所以我不能说 100% 你可以用它创建一个假的 GridView,但一定要看看。不过,PEX 和 Moles 确实可以很好地协同工作。

于 2011-11-18T10:37:20.153 回答