是否有可能为经典asp.net中具有void返回类型和访问说明符保护或私有的方法的类编写Nunit框架单元测试 . 让我明白,因为我是单元测试的初学者 .
更新:这是我的void函数,如果意味着,我怎么能为此编写单元测试?
public void function(TextBox txtBox, string Result)
{
if (Result.Trim().ToString() == " ")
{
txtBox.Text = "";
}
else
{
txtBox.Text = Result;
}
}
1 回答
我想你问了两个问题:
是否有可能为具有void返回类型的方法的类编写Nunit框架单元测试?这是可能的,但在某种程度上你必须知道在执行方法时一切都很顺利 . 例如,如果它抛出异常,则测试失败,否则认为是成功的 . 此外,如果方法的副作用已更改这些属性,则可以检查其他属性 .
是否有可能为经典asp.net中具有访问说明符保护或私有的类编写Nunit框架单元测试?对私人和受保护成员进行单元测试并不常见 . 但是,如果您需要它,可以通过反射来完成,但您也可以使用
internal
而不是私有 . 在AssemblyInfo.cs中,使用InternalsVisibleTo
属性,如下所示:只有UnitTestAssembly类可以访问内部成员 . 成员对其他课程保持隐藏 . UnitTestAssembly必须是单元测试项目/程序集的名称 . 当程序集强名时,这不起作用;在这种情况下,你必须指定更多 . 在这种情况下,This link可能对你有帮助 .
更新:...我怎么能为此编写单元测试?在类中声明一个内部函数,其中也定义了
function
:现在您可以编写单元测试:
但是当你指定一个空文本框时会发生什么?
这怎么办呢?这是您可以在单元测试中验证的内容 .