gpt4 book ai didi

c# - 为引用 UI 控件的类编写单元测试

转载 作者:行者123 更新时间:2023-11-30 21:24:51 25 4
gpt4 key购买 nike

我有一个用户控件继承自的抽象类,我想为其编写单元测试。我知道我需要创建一个模拟类才能测试抽象类。抽象类具有对 UI 控件的引用(例如:将 Web 控件作为参数的基本方法)。我的问题是,如何为引用 System.Web.UI 命名空间中的控件的任何方法编写单元测试?

谢谢

编辑:这是我的代码示例

public abstract SpecialUserControl : System.Web.UI.UserControl
{
protected virtual void DoSomething(TextBox txtBoxName)
{
//Here's the logic I want to write unit test for
}
}

在 ascx.cs 中

public partial class MyUsercontrol : SpecialUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
base.DoSomething( txtBoxName );
}

}

在 aspx.cs 中

public partial class SomePage : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
//Dynamically loaded
LoadControl("MyUserControl.ascx");
}

}

最佳答案

我的回答是“是什么阻止了您编写这些测试?” (我需要更多的代码上下文才能给出更详细的答案)

像对待代码的任何其他协作者/依赖项一样对待它们。如果 UI 控件很容易在测试套件中创建 - 您应该继续设置它们的状态,对它们采取行动并断言您的期望。
如果 UI 控件不容易创建或创建起来成本高昂,请使用接口(interface)(仅包含您用来与控件交互的方法)将它们抽象出来并插入模拟/伪造/ stub 实现。

我还可以补充一点,让 UI 尽可能薄。

关于c# - 为引用 UI 控件的类编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/997102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com