【问题标题】:Help me avoid this NullReferenceException (using Rhino Mocks)帮助我避免这个 NullReferenceException(使用 Rhino Mocks)
【发布时间】:2010-07-16 14:42:40
【问题描述】:

我目前正在尝试让我的一个单元测试工作,但是有一个问题。我有一个名为 AccountingScheduleLookup 的类,它附加了一个只读的 ID 字段。当我尝试模拟对使用此 ID 字段的方法的调用时,它会在该特定代码行上向我抛出一个可爱的 NullReferenceException。这意味着要么没有为它分配 ID,要么没有实例化对象。

但是,当我确实进行了基本实例化时,它仍然给我抛出了异常。关于如何解决这个问题的任何想法?

这是一个代码示例(物有所值)

AccountingScheduleLookup = new AccountingSchedule { Description = "Will this work?" }
var calendarPeriods = dal.GetObjects<AccountingScheduleDetail>(
     Where.Property("AccountingScheduleID").Is(AccountingScheduleLookup.AccountingScheduleID));

【问题讨论】:

  • 您可以从显示您尝试测试的代码开始。这样,您将大大增加获得正确答案的机会。
  • 你在某处使用 Rhino.Mocks 吗?我在这段代码 sn-p 中没有看到它。

标签: c# nunit rhino-mocks rhino nunit-console


【解决方案1】:

rhino mocks 的典型用法包括设置一个期望,即当访问该属性时,它会返回一个特定值。

这里是最新版 rhino mocks 的快速参考:

http://www.ayende.com/wiki/GetFile.aspx?File=Rhino+Mocks+3.3+Quick+Reference.pdf

以下是可能与您相关的部分:

属性获取器

Expect.Call(foo.Name).Return("Bob");

【讨论】:

  • Rhino Mocks 的最新版本实际上是 3.6。 3.3 大约在 2007 年 10 月发布,而 3.6 大约在 2009 年 9 月发布。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2010-12-26
相关资源
最近更新 更多