Je suis un peu nouveau pour TDD. J'ai commencé à créer les propriétés dont j'ai besoin sur le modèle de vue en tant que propriété auto.Unité testant le Viewmodel
public string Firstname { get; set; }
Je crée ensuite un test
[TestMethod]
[Tag("Property")]
public void FirstNameTest()
{
ViewModel = new CustomerViewModel();
ViewModel.PropertyChanged += (s, e) =>
{
Assert.AreEqual("Firstname", e.PropertyName);
Assert.AreEqual("Test", ViewModel.Firstname);
};
ViewModel.Firstname = "Test";
}
Alors je prolonger la mise en œuvre effective de faire le test passe comme ceci:
public string Firstname
{
get { return _contact.FirstName; }
set
{
if (_contact.FirstName == value)
return;
_contact.FirstName = value;
RaisePropertyChanged(() => Firstname);
}
}
Le problème que j'ai est ce test passe encore pour la propriété Aut. Un conseil pour moi comment je pourrais améliorer mon processus?
Vous ne devez pas placer les assertions dans un lambda. Les assertions lancent des exceptions lorsqu'elles échouent. Si vous faites cela dans les lambdas, alors ceux-ci vont tirer à l'intérieur de l'objet-test et vous courez le risque que ceux-ci soient manipulés par l'objet. Vous devriez plutôt assigner des résultats à certaines variables (généralement booléennes) de la portée du test, puis vous opposer à celles-ci lorsque vous aurez retourné et déroulé la pile des appels. – Tormod