我是Unit Tests的新手,所以我一直在尝试编写一些示例来学习使用它们的正确方法.我有一个示例项目,它使用Entity Framework连接到数据库.
我正在使用由数据访问层组成的n层体系结构,该数据访问层使用EF查询数据库,业务层调用数据访问层方法来查询数据库并使用检索到的数据执行其业务目的以及组成的服务层简单地调用业务层对象的WCF服务.
我是否必须为每一层(数据访问,业务层,服务层?)编写单元测试?
哪种方法可以为查询数据库的方法编写单元测试代码?下一个代码是我的数据访问层中的一个方法的例子,它对数据库执行选择,它的单元测试应该如何?
public class DLEmployee
{
private string _strErrorMessage = string.Empty;
private bool _blnResult = true;
public string strErrorMessage
{
get
{
return _strErrorMessage;
}
}
public bool blnResult
{
get
{
return _blnResult;
}
}
public Employee GetEmployee(int pintId)
{
Employee employee = null;
_blnResult = true;
_strErrorMessage = string.Empty;
try
{
using (var context = new AdventureWorks2012Entities())
{
employee = context.Employees.Where(e => e.BusinessEntityID == pintId).FirstOrDefault();
}
}
catch (Exception ex)
{
_strErrorMessage = ex.Message; …
Run Code Online (Sandbox Code Playgroud) 我正在使用EdmGen.exe在Entity Framework 5.0中预生成视图,如下所示:
"%windir%\Microsoft.NET\Framework\v4.0.30319\EdmGen.exe"
/nologo
/mode:ViewGeneration
/inssdl:"$(TargetDir)Base.ssdl"
/incsdl:"$(TargetDir)Base.csdl"
/inmsl:"$(TargetDir)Base.msl"
/outviews:"$(ProjectDir)BaseViews.cs"
/language:CSharp
Run Code Online (Sandbox Code Playgroud)
警告细节:
警告3默认目标Entity Framework版本需要edmx架构版本2.0.0.0或更低版本.指定的架构是版本3.0.0.0.要避免此警告,请明确指定目标实体框架版本.您可以使用带有targetVersion选项的EdmGen.exe命令行工具,或者在调用GenerateCode方法时包含targetEntityFrameworkVersion参数来执行此操作.
知道如何解决这个问题吗?