Je viens de commencer à explorer BDD pour mon projet actuel. J'utilise moq avec mspec pour obtenir de bonnes sorties de test. Cependant, je ne trouve pas assez d'exemples de ce que j'essaie de faire, peut-être que j'utilise la mauvaise approche ou peut-être ne comprends pas assez la syntaxe, s'il vous plaît aviser.Comment comparer deux listes d'objets en utilisant moq avec mspec (style BDD)
Le problème est que j'essaie de vérifier si une propriété a été définie dans une classe. Cette propriété est une liste d'objets et je veux vérifier que chaque objet a les mêmes valeurs que l'objet attendu.
Donc, étant donné les locaux initiaux
public class Data
{
int a;
}
public class DataViewer : IDataViewer
{
public List<Data> dataList {get;set;}
}
public interface IDataViewer
{
public List<Data> dataList {get;set;}
}
J'utilise MSpec et moq effectuer les opérations suivantes
class when_refreshing_data_list : Context
{
Because .... =() =>
{
.... // process the datalist
}
ThenIt should_set_the_data_list =() =>
{
List<DataList> expectedDataList = new List<DataList>();
expectedDataList.add() // add some expected values to the datalist
...
// problem is here in comparing two List<DataList>
_mockDataViewer.VerifySet(f => f.dataList = expectedDataList)
}
}
public abstract class Context
{
Establish context =() =>
{
_mockDataViewer = new Mock<IDataViewer>();
}
}
Comment pourrais-je effectuer cette comparaison? Puis-je utiliser le remplacement de l'opérateur? Si oui, comment? J'ai essayé de mettre un corps d'expression sur le côté droit du lambda seulement pour être dit que "une expression lambda avec un corps d'instruction ne peut pas être convertie en arbre d'expression".
Toute aide appréciée :)
génial! Cela a fonctionné! – Joe