这是一个与实体一起工作的示例函数,将其保存到数据库中,然后由于无法为其编写单元测试而导致问题。过来看:
// this class exists in a Silverlight Class Library
public class EmployeeSaver
{
....
public void Go()
{
Employee e = new Employee();
e.Name="Jeremiah";
... // Other stuff that really needs to be tested
_DataContext.Employees.Add(e);
_DataContext.SubmitChanges();
}
}
由于RIA服务的性质,域服务不会在Silverlight单元测试框架内运行。这意味着我在做单元测试时无法访问RIA。
我们已经考虑过模拟数据库,但是这个类实际上创建了一个要添加到数据库中的实体(雇员)。这是有问题的,因为模拟数据库不使用这个实体,而是使用一个类似于原始实体的MockEntity类。
我们不是要测试RIA本身,而是如何使用RIA生成的实体。
我的最终目标是写一个类似这样的函数:
[TestMethod]
public void Test()
{
EmployeeSaver s = new EmployeeSaver();
s.Go();
Assert.IsEqual( DataContext.Employees.Last().Name, "Jeremiah" );
}
如何测试此函数?我应该使用什么测试框架?我使用Silverlight测试框架还有一段路要走吗?