我正在使用FakeItEasy來檢查對屬性的公共setter方法的調用是否已被調用。在C中獲取屬性設置器的方法名稱#
該屬性稱爲Description
,而且目前我正在測試它像這樣:
A.CallTo(model)
.Where(x => x.Method.Name.Equals("set_Description"))
.WithAnyArguments()
.MustHaveHappened();
這個工作在功能上,使用魔法字符串方法名,不過缺點是,如果我重構該屬性的名稱,測試將失敗,我將不得不在所有測試中手動更改字符串。
理想情況下,我想知道的方式在這片僞做它像:
var setterName = model.GetType()
.SelectProperty(x => x.Description)
.GetSetterName();
A.CallTo(model)
.Where(x => x.Method.Name.Equals(setterName))
.WithAnyArguments()
.MustHaveHappened();
這樣,如果我用鼠標右鍵單擊重構Description
屬性,測試將不再需要要被更新。我怎樣才能做到這一點?
順便說一句,如果你這麼傾向,你可以在這裏省略'WithAnyArguments'。 –
這是爲什麼@BlairConrad?如果我沒有具體聲明約束條件,是否帶有'WithAnyArguments'? –
這正是爲什麼。嗯。我不能把@JamesMonger放在這裏。看起來在一開始。啊。因爲「郵件所有者將永遠被通知」。你學到的東西。 –