我正在潛入ASP.NET MVC 2中,並且正在通過一個教程,我在單元測試中遇到了與模板方法有關的錯誤。錯誤代碼......爲什麼我的C#模板方法抱怨接受特定類型?
var displayedProducts = (IList<Product>)result.ViewData.Model;
displayedProducts.Count.ShouldEqual(2);
和ShouldEqual
方法定義是...
public static void ShouldEqual<T>(this T actualValue, T expectedValue)
{
Assert.AreEqual(expectedValue, actualValue);
}
,誤差...
'int' does not contain a definition for 'ShouldEqual' and no extension method 'ShouldEqual' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?)
,而是因爲我所有這些都是新鮮事物,我沒有看到我想念的東西。
- 有沒有人看到這個問題?
- 有人能向我解釋如何
ShouldEqual
是Count
非常感謝您的幫助!如果需要更多代碼,請告訴我。
不錯!這正是它來自的書。無論如何,感謝帖子,我注意到我沒有包含「ShouldEqual」的命名空間的「使用」語句,因爲這兩個代碼塊存在於相同的命名空間(SportsStore.UnitTests)中,但它們存在兩個不同的文件。我不知道如何處理這個。你的想法?再次感謝! – BeachRunnerFred 2010-09-30 19:42:09
關於我的頭頂,我不記得項目的結構。與其他兩行代碼中的「ShouldEqual」是否在不同的項目中?如果是,請嘗試將該項目的引用添加到定義了「ShouldEqual」的項目中。 – 2010-09-30 20:07:04
嗯,這很奇怪。我剛剛發現你在書中的位置,並且它們在同一個項目中,應該位於同一個命名空間中......我沒有看到代碼和書中代碼的任何區別。您可以從apress站點下載代碼(請參閱本頁面左下角的「書籍資源」:http://www.apress.com/book/downloadfile/4609)並嘗試構建它?它對我來說很好,所以或許看看這些代碼,你的項目將幫助你弄清楚什麼是不同的。 – 2010-09-30 20:20:42