当前位置:  开发笔记 > 数据库 > 正文

人们如何对使用Linq to SQL的代码进行单元测试

如何解决《人们如何对使用LinqtoSQL的代码进行单元测试》经验,为你挑选了2个好方法。

人们如何对使用Linq to SQL的代码进行单元测试?



1> Presidenten..:

更新:

Fredrik在他的博客上提供了一个关于如何对linq2sql应用程序进行单元测试的示例解决方案.您可以在以下位置下载:

http://web.archive.org/web/20120415022448/http://iridescence.no/post/DataContext-Repository-Pattern-Example-Code.aspx

我不仅认为他发布了一个示例解决方案,他还设法为所有类提取接口,这使得设计更加分离.

我的老帖子:

*我发现这些博客我认为是制作DataContext包装器的良好开端: Link1 Link2

它们几乎涵盖了相同的主题,除了第一个主题实现了为表提取接口的方法.第二个更广泛,所以我也包括它.*


链接似乎已经死了

2> Luke Sampson..:

迟了3年,但这就是我这样做的方式:

https://github.com/lukesampson/LinqToSQL-test-extensions/

无需编写包装器或执行大量管道工作,只需将T4模板放在.dbml旁边即可获得:

    数据上下文的接口,例如IExampleDataContext

    数据上下文的内存模拟,例如MemoryExampleDataContext

两者都将自动使用您已在DBML中配置的映射.

所以你可以做的事情

public class ProductRepo {
    IExampleDataContext DB { get; set };
    public ProductRepo(IExampleDataContext db) {
        DB = db;
    }

    public List GetProducts() {
        return DB.Products.ToList();
    }
}

你可以用任何一个来调用它

new ProductRepo(new MemoryExampleDataContext()).GetProducts(); // for testing

要么

new ProductRepo(new ExampleDataContext()).GetProducts(); // use the real DB

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有