关于使用数据访问层的单元测试模型对象的另一个“简单”问题。
当我嘲笑我的时候
Table<Customer>
到
IQuerable<ICustomer>
在哪里
new List<FakeCustomer>().AsQuerable()
用于内存数据存储,以下代码完全通过单元测试:
var filteredCustomers = from c in dal.Customers
where c.Code.ToUpperInvariant() == "ABC"
select c;
当运行应用程序时,我当然会
NotSupportedException
(因为
ToUpperInvariant()
)也许这是一个很蹩脚的例子,因为问题可以通过替换来解决。
ToupperInvariant()。
到
ToUpper()
但你说得对。
问题:这样的不一致性对于编写真正的单元而不是集成测试来说是一种“费用”吗?
或者可能我做了一些错误的事情,例如,应该有另一种方法来模拟完全模拟Linq to SQL DataContext的DataContext?
目前,我正在将测试数据库排队,而不是在内存模拟中捕捉这样的错误。
谢谢你的建议。