gpt4 book ai didi

c# - Xamarin Forms 的 FreshMvvm FreshPageModelResolver.ResolvePageModel 用于单元测试

转载 作者:行者123 更新时间:2023-11-30 16:41:48 24 4
gpt4 key购买 nike

在进行单元测试时,我偶然发现了静态的 FreshPageModelResolver.ResolvePageModel,这显然是不可测试的。

我本来打算做一个包装器和一个接口(interface),但我的一部分是说“FreshMvvm 是一个现代框架,为应该完全可测试的现代架构而设计”

我错过了什么吗?我应该没有使用 FreshPageModelResolver.ResolvePageModel 吗?

查看源码,其实并没有静态实现的必要:https://github.com/rid00z/FreshMvvm/blob/master/src/FreshMvvm/FreshPageModelResolver.cs

最佳答案

如果您对它提供的功能感到满意,那么使用 FreshPageModelResolver.ResolvePageModel 没有任何问题。但将其视为第 3 方依赖项并将其封装在您自己的抽象之后,以保持您的代码解耦和可维护。

public interface IFreshPageModelResolver {
Page ResolvePageModel (Type type, object data);
//...code removed for brevity
}

实现将包装静态依赖

public class  DefaultPageModelResolver : IFreshPageModelResolver {
public Page ResolvePageModel (Type type, object data) {
return FreshPageModelResolver.ResolvePageModel(type, data);
}
//...code removed for brevity
}

并且接口(interface)可以根据需要注入(inject)依赖类。

您可以考虑 fork 存储库并将抽象及其实现作为拉取请求提交给项目。

关于c# - Xamarin Forms 的 FreshMvvm FreshPageModelResolver.ResolvePageModel 用于单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48083240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com