代码之家  ›  专栏  ›  技术社区  ›  Jeremiah

如何对将记录插入RIA服务数据库的函数进行单元测试?

  •  3
  • Jeremiah  · 技术社区  · 16 年前

    这是一个与实体一起工作的示例函数,将其保存到数据库中,然后由于无法为其编写单元测试而导致问题。过来看:

    // 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测试框架还有一段路要走吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   zumalifeguard Arctic    16 年前

        2
  •  1
  •   ryber    16 年前