nunit 测试中的注入
我有:
using Ninject;
public class ServiceManager : IServiceHelper
{
[Inject]
public IEntityRepository<User, UserCriteria> UserRepository
{
get;
set;
}
public User GetUserById(object id)
{
User user = UserRepository.GetById(id);
if (user != null && user.IsHolding.HasValue && user.IsHolding.Value)
user.Companies = GetAllCompanies().ToList();
return user;
}
}
我不会在 GetUserById()
上编写测试。我现在必须知道它在做什么,它的方法给了我什么结果。 请注意,UserCriteria 不在我的命名空间中(我在测试中看不到它)UserRepository.GetById(id)
- 向数据库发出请求。
I have:
using Ninject;
public class ServiceManager : IServiceHelper
{
[Inject]
public IEntityRepository<User, UserCriteria> UserRepository
{
get;
set;
}
public User GetUserById(object id)
{
User user = UserRepository.GetById(id);
if (user != null && user.IsHolding.HasValue && user.IsHolding.Value)
user.Companies = GetAllCompanies().ToList();
return user;
}
}
I wont write test on GetUserById()
. I have to now what is it doing, which result it's method gives me.
note that UserCriteria not in my namespace (i cannot see it from my test) UserRepository.GetById(id)
- makes request to database.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您需要做的就是为您的 UserRepository 属性提供一个模拟对象,这样您就不会访问数据库,并且可以提供您想要的任何结果来验证您的 GetUserById 方法是否正常工作。
例如,使用 NSubstitute 你可以执行如下操作:
It looks like all you need to do is supply a mock object for your UserRepository property so that you don't hit the database and can provide whatever results you like to verify your GetUserById method is working correctly.
For example, using NSubstitute you could do something like this: