【发布时间】:2010-09-08 15:33:32
【问题描述】:
我有一个安全规则,新注册的用户对其自己的用户实体拥有完全权限。我正在使用 Rhino.Security 并且代码工作正常,但我想创建一个单元测试以确保进行适当的调用来设置权限。这是代码的简化版本:
public User Register(UserRegisterTask userRegistrationTask) {
User user = User.Create(userRegistrationTask);
this.userRepository.Save(user);
// Give this user permission to do operations on itself
this.permissionsBuilderService.Allow("Domain/User")
.For(user)
.On(user)
.DefaultLevel()
.Save();
return user;
}
我已经模拟了 userRepository 和 permissionBuilderService 但permissionBuilderService 的流畅接口需要从链中的每个方法调用返回不同的对象(即 .Allow(...).For(...).On (...) ETC)。但我找不到模拟链中每个对象的方法。
有没有办法测试permissionBuilderService 的Allow 方法是否被调用但忽略了链的其余部分?
谢谢 丹
【问题讨论】:
-
真正的permissionsBuilderService有副作用吗? (即是否可以在测试中使用真实的?)
-
真正的 permissionsBuilderService 期望附加一个真正的数据库。这是可能的,但需要为每种测试设置数据库并拆除它。我希望有一些要求不高的东西。
标签: unit-testing rhino-mocks fluent rhino-security