【问题标题】:Shimming a control匀场控制
【发布时间】:2017-06-28 10:37:20
【问题描述】:

我正在尝试使用 MSTest 对一些遗留代码编写一些单元测试。我在我正在测试的类上添加了一个 fakes 程序集,但它引用了一个用户控件并且其中包含代码。 我知道这可能不是正确的方法,但是可以填充用户控件吗?它们没有出现在 ShimContext 中,所以我没有抱太大希望..

【问题讨论】:

  • 如果您指出您所指的是哪个控件 - aspx、WinForms、WPF,什么有助于回答您的问题?
  • 非常好。多哈。这是 WPF。

标签: c# unit-testing mocking mstest microsoft-fakes


【解决方案1】:

我不确定你在哪里卡住了。

如果我像这样在 WPF 中创建一个新类 UserControl1

  /// <summary>
  /// Interaction logic for UserControl1.xaml
  /// </summary>
  public partial class UserControl1 : UserControl
  {
    public UserControl1()
    {
      InitializeComponent();
    }

    public void Do()
    {

    }
  }

然后我生成的 shim 包含 Do() 方法:

Namespace.Fakes.ShimUserControl1.AllInstances.Do = control1 =&gt; { };

如果您想填充实际的 System.Windows.Controls.UserControl,请引用 PresentationFramework dll 并为其生成假货。

然后您将获得以下要分配的实例属性(参见屏幕截图):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 2017-11-10
    • 2012-10-07
    • 2014-01-10
    • 2014-11-21
    相关资源
    最近更新 更多