使用Pex进行单元测试

时间:2011-11-18 10:27:42

标签: c# unit-testing pex

我想使用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进行单元测试?

1 个答案:

答案 0 :(得分:1)

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

不知何故,你需要使用假文本框创建一个伪造的GridView,以便代码在没有NullReferenceException的情况下运行。

现在我对Moles没有经验,所以我不能100%说你可以用它创建一个假的GridView,但肯定看看。虽然PEX和Moles合作得很好。