今天我遇到了與C#相關的問題。我必須編寫一個能通過一些測試的程序。我實現的一切工作正常,但有一個測試不允許使用公共字段,並且失敗。C#中的收益率回報 - 對域的公示進行失敗測試
我有一個泛型類實現IEnumerable的,而導致問題的事情是:
public IEnumerator<R> GetEnumerator()
{
foreach (R r in roomList)
yield return r;
}
如果我把這個類「零收益」,測試通過的罰款。我不知道什麼是錯的?這裏是測試報告:
Result Message: Assert.Fail failed. Detected type "Exercise.Hotel`2+<GetEnumerator>d__0" with public filed(s) "Exercise.Hotel`2[R,SC] <>4__this, R <r>5__1, Enumerator <>7__wrap2", which is not allowed.
這裏也是測試代碼。說實話,我不是很熟悉它是如何工作的。當然,這也可能是由不好的測試造成的。
var withPublicField = types.Where(t => !t.IsEnum)
.Where(t => t.GetFields(BindingFlags.Public | BindingFlags.Instance).Count() > 0)
.Where(t => !t.Name.StartsWith("<>c__DisplayClass"))
.ToDictionary(t => t.FullName, t => t.GetFields(BindingFlags.Public | BindingFlags.Instance));
感謝您的幫助。這是我的第一個問題,所以我希望我做得很好:)
向我們展示場屬性標記 – Steve 2014-11-06 22:48:56
有沒有在這,只是'回roomList.GetEnumerator任何區別() '? – clcto 2014-11-06 22:49:34
「不允許使用公共方法」您的意思是public _fields_?你爲什麼不允許使用公共方法? – 2014-11-06 22:51:34