Ceci est une fonction exemple qui fonctionne avec une entité, l'enregistre dans une base de données et provoque ensuite des problèmes parce que nous ne pouvons pas écrire un test d'unité pour cela. Check it out:Comment tester une unité qui insère un enregistrement dans une base de données RIA Services?
// 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();
}
}
Parce que la nature des services RIA, un DomainService ne fonctionne pas à l'intérieur du cadre de tests unitaires Silverlight. Cela signifie que je n'ai pas accès à RIA lorsque je fais mes tests unitaires.
Nous avons pensé à des bases de données fantômes, mais cette classe crée en fait une entité (employé) à ajouter à la base de données. Ceci est problématique car les bases de données fantaisie n'utilisent pas cette entité mais une classe MockEntity qui ressemble à l'entité d'origine.
Nous n'essayons pas de tester RIA elle-même, mais comment nous utilisons les entités générées par RIA.
Mon objectif final serait d'écrire une fonction similaire à ceci:
[TestMethod]
public void Test()
{
EmployeeSaver s = new EmployeeSaver();
s.Go();
Assert.IsEqual(DataContext.Employees.Last().Name, "Jeremiah");
}
Comment puis-je tester cette fonction? Quel cadre de test dois-je utiliser? Suis-je loin d'utiliser le Silverlight Testing Framework?
difficile un ...... :( –
tester plusieurs niveaux n'est jamais facile ... simuler, tester séparément, ou reconsidérer? –