Это пример функции, которая работает с сущностью, сохраняет ее в БД, а затем вызывает проблемы, потому что мы не можем написать для нее модульный тест. Проверьте это:
// 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 по своей природе не работают, DomainService не работает внутри инфраструктуры модульного тестирования Silverlight. Это означает, что у меня нет доступа к RIA, когда я выполняю свои модульные тесты.
Мы думали о фиктивных базах данных, но этот класс фактически создает Entity (Employee) для добавления в БД. Это проблематично, поскольку базы данных Mock используют не эту сущность, а класс MockEntity, который похож на исходную сущность.
Мы не пытаемся протестировать саму RIA, но как мы используем сущности, созданные RIA.
Моя конечная цель - написать функцию, подобную этой:
[TestMethod]
public void Test()
{
EmployeeSaver s = new EmployeeSaver();
s.Go();
Assert.IsEqual( DataContext.Employees.Last().Name, "Jeremiah" );
}
Как я могу проверить эту функцию? Какие рамки тестирования мне следует использовать? Могу ли я использовать платформу тестирования Silverlight?