【问题标题】:Using Moq to assign property value when method is called调用方法时使用 Moq 分配属性值
【发布时间】:2012-04-22 20:37:50
【问题描述】:

我正在尝试在调用方法时使用 Moq 来分配属性。

类似的东西:

Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).AssignProperty(y=>y.Enabled = true);

是否可以在调用方法时使用 Moq 设置预期的属性值

【问题讨论】:

  • 当然应该。我知道 Rhino 会这样做,所以如果 Moq 不这样做,那将是令人惊讶的。我相信这只是一个配置方法混淆或其他一些使用问题。但是,我不知道起订量,所以我会让更有知识的人真正回答这个问题。

标签: c# .net unit-testing moq


【解决方案1】:

我假设您在调用该方法时实际上是在尝试在您的 Mock 上执行新的 Setup()?如果是这样,您应该可以通过回调来做到这一点,如下所示:

Mock<ITimer> mock = new Mock<ITimer>();
mock.Setup(x=>x.Start()).Callback(() => mock.SetupGet(y => y.Enabled).Returns(true));

它很丑,但它应该可以解决问题。

【讨论】:

  • 谢谢,尽管我使用了 mock.Setup(x => x.Start()).Callback(() => mock.Setup(x => x.Enabled).Returns(真));
猜你喜欢
  • 2020-02-08
  • 2021-06-17
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2012-01-27
  • 2012-10-24
相关资源
最近更新 更多