如何使用 nhibernate 对引用的属性进行单元测试
如果我想对具有引用属性的实体进行单元测试,最佳实践是什么?
BlogEntry 通过外键引用 User 对象。现在我正在使用 session.Load 来避免异常,因为外键不能包含空值。
我可以以某种方式嘲笑这个吗?我不希望我的单元测试包含对数据库中“真实”用户的引用。
public class BlogEntry {
public virtual int ID {get;set;}
public virtual User CreatedBy {get;set;}
public virtual string Text {get;set;}
}
我目前正在使用以下测试方法:
[Test]
public void Create_blog_entry()
{
using (var session = sessionFactory.OpenSession())
using (var trans = session.BeginTransaction())
{
var entry = new BlogEntry(){
Text = "Lorem ipsum",
CreatedBy = session.Load<User>(1)
};
session.Save(entry);
trans.Rollback();
}
}
What's the best practice if I'd like to unit test an entity with a referenced property?
BlogEntry is referencing a User object by a foreign key. Right now I'm using session.Load to avoid an exception since the foreign key cannot contain nulls.
Can i Mock this somehow instead? I don't want my unit test to contain references to a "real" user in the db.
public class BlogEntry {
public virtual int ID {get;set;}
public virtual User CreatedBy {get;set;}
public virtual string Text {get;set;}
}
I'm currently using the following test method:
[Test]
public void Create_blog_entry()
{
using (var session = sessionFactory.OpenSession())
using (var trans = session.BeginTransaction())
{
var entry = new BlogEntry(){
Text = "Lorem ipsum",
CreatedBy = session.Load<User>(1)
};
session.Save(entry);
trans.Rollback();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)