之前是這樣的:單元測試TryUpdateModel在MVC 2 RC尷尬的行爲
TryUpdateModel(entity, null, null, new[] { "Name", "Controller" });
我能單元測試這個控制器動作只是在我的測試中使用這個:
controller.ValueProvider = myFormCollection.ToValueProvider();
將我的代碼遷移到MVC 2後,這不再起作用。它在FormCollection中的GetValue方法實現中保持失敗,因爲它驗證您要求的值不爲null或爲空。事情是這個代碼在運行時工作,但不是在我的單元測試。我沒有使用前綴,因此我將NULL作爲前綴值發送。
我查看了MVC 2 RC源代碼,並且控制器的ValueProvider查找的第一個值是前綴,因此它失敗了。我必須將哪個提供程序分配給controller.ValueProvider,以便它可以在我的單元測試中工作?
編輯:非常簡短地問,如何告訴TryUpdateModel不要在我的單元測試中使用前綴,以便它不引發異常?
謝謝!