NavigationParameters - GetNavigationMode() 在模拟 NavigationParameters 时为 NULL。
NavigationParameters - GetNavigationMode() is NULL while mocking NavigationParameters.
我尝试模拟 NavigationParameters 并将 GetNavigationMode() 设置为 NULL。有没有更好的方法来模拟扩展方法?
这也困扰了我一段时间,我终于找到了至少可以解决的方法。 This 问题表明您实际上可以将内部参数添加到 NavigationParameters,只是不会显示在智能感知中。我的测试代码最终看起来像这样:
var navParams = new NavigationParameters();
navParams.AddInternalParameter("__NavigationMode", NavigationMode.Back);
希望对您有所帮助!
不适合我。但是你的参考帮助我找到了一个编译的解决方案(也许是版本问题,我使用 Prism 7.1
:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.New);
如@thomas-kison 所述,AddInternalParameter
api 似乎不再存在。 @batesiiic 在他们的回答中引用了 search through the Prism repo only brings up the issue。
为了通过解决@esteban-chornet 的问题来添加@thomas-kison 的答案,我发现这个解决方案将通过将 INavigationParametersInternal
参数作为 INavigationParameters
传递来工作:
// arrange:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.Back);
// act:
_myCoolPageViewModel.OnNavigatedTo(navParams as INavigationParameters);
// assert whatever should happen in OnNavigatedTo given a NavigationMode of NavigationMode.Back
希望这对某人有所帮助!
我尝试模拟 NavigationParameters 并将 GetNavigationMode() 设置为 NULL。有没有更好的方法来模拟扩展方法?
这也困扰了我一段时间,我终于找到了至少可以解决的方法。 This 问题表明您实际上可以将内部参数添加到 NavigationParameters,只是不会显示在智能感知中。我的测试代码最终看起来像这样:
var navParams = new NavigationParameters();
navParams.AddInternalParameter("__NavigationMode", NavigationMode.Back);
希望对您有所帮助!
不适合我。但是你的参考帮助我找到了一个编译的解决方案(也许是版本问题,我使用 Prism 7.1
:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.New);
如@thomas-kison 所述,AddInternalParameter
api 似乎不再存在。 @batesiiic 在他们的回答中引用了 search through the Prism repo only brings up the issue。
为了通过解决@esteban-chornet 的问题来添加@thomas-kison 的答案,我发现这个解决方案将通过将 INavigationParametersInternal
参数作为 INavigationParameters
传递来工作:
// arrange:
var navParams = (INavigationParametersInternal)new NavigationParameters();
navParams.Add("__NavigationMode", NavigationMode.Back);
// act:
_myCoolPageViewModel.OnNavigatedTo(navParams as INavigationParameters);
// assert whatever should happen in OnNavigatedTo given a NavigationMode of NavigationMode.Back
希望这对某人有所帮助!