帮助我避免这个 NullReferenceException (使用 Rhino Mocks)

发布于 2024-09-10 15:50:13 字数 532 浏览 10 评论 0 原文

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

但是,当我确实放入基本实例化时,它仍然抛出异常。关于如何解决这个问题有什么想法吗?

这是一个代码示例(就其价值而言)

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

I'm currently trying to get one of my unit tests to work, but there is one thing in the way. I have a class called AccountingScheduleLookup that has an ID field attached to it that's read-only. When I try to mock a call to a method that uses this ID field it throws me a lovely NullReferenceException on that particular line of code. This means that either the ID was not assigned to it, or the object was not instantiated.

When I did put in a basic instantiation, though, it still threw me the exception. Any ideas for how to get around this?

Here's a code sample (for what it's worth)

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栖竹 2024-09-17 15:50:13

犀牛模拟的典型用法包括设置一个期望,即当访问该属性时,它会返回某个值。

以下是最新版本 rhino 模拟的快速参考:

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

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

属性吸气剂

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

Typical usage of rhino mocks would involve setting up an expectation that when that property is accessed it return a certain value.

Here is a quick reference for the latest version of rhino mocks:

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

Here is the section that will likely pertain to you:

Property Getters

Expect.Call(foo.Name).Return("Bob");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文