【发布时间】:2013-02-21 23:00:59
【问题描述】:
过去两天我一直在开始和重新开始这个学习过程,因为我真的不知道如何开始。
我有一个包含三层的 MVC4 应用程序:Web、Services 和 Core。控制器向服务层发送请求,服务层提供控制器用来为视图水合视图模型的信息。
我的服务层有以下方法:
public interface ISetServices
{
List<Set> GetBreadcrumbs(int? parentSetId);
Set GetSet(int? setId);
Set CreateSet(string name, string details, int? parentSetId);
void DeleteSet(int? setId);
Card GetCard(int? cardId);
Card CreateCard(List<string> sides, string details, int? parentSetId);
void DeleteCard(int? cardId);
Side GetSide(int? sideId);
List<String> GetSides(Card card);
Side CreateSide(Card card, string content);
void DeleteSide (int? sideId);
}
我试图弄清楚如何创建一个单元测试类库来测试这些函数。
运行测试时,我希望删除(如果存在)并重新创建一个 TestDatabase,并用数据播种。我的核心项目中有一个“受保护的”种子方法以及 - 我可以使用它吗?如果是这样,怎么做?
我读到的每一个地方都说永远不要在你的测试中使用数据库,但我不能完全弄清楚测试的意义是什么。这些服务用于访问和更新数据库……我不需要数据库来测试吗?
我创建了一个 Project.Services.Tests 单元测试项目,但不知道如何连接所有内容。如果可能的话,我想用代码而不是配置文件来做......任何例子或指针都会非常感激。
【问题讨论】:
-
这个问题没有一个绝妙的解决方案,你能多写一点吗——比如你用的是什么ORM,你的数据库是什么?
标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4