Jestem trochę nowa w TDD. Zacząłem tworzyć właściwości, których potrzebuję w modelu widoku, jako zwykłą właściwość auto.Jednostka testująca Viewmodel
public string Firstname { get; set; }
Następnie tworzę 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";
}
Następnie chciałbym przedłużyć faktyczną realizację zrobić testy przechodzą tak:
public string Firstname
{
get { return _contact.FirstName; }
set
{
if (_contact.FirstName == value)
return;
_contact.FirstName = value;
RaisePropertyChanged(() => Firstname);
}
}
Mam problem jest, że próba nadal przechodzi dla właściwości Aut. Jakaś wskazówka dla mnie, jak mogę poprawić mój proces?
Nie powinieneś umieszczać Asserts w obrębie lambda. Asserts zgłasza wyjątki, gdy zawodzą. Jeśli zrobisz to w lambdach, to te będą strzelały wewnątrz obiektu-under-test i ryzykujesz, że są one obsługiwane przez obiekt. Powinieneś raczej przypisać wyniki do niektórych (zazwyczaj bool) zmiennych z zakresu testowego, a następnie powrócić do nich, gdy zwrócisz i rozwiniesz stos wywoławczy. – Tormod