FreshPageModelResolver

FreshPageModelResolver

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

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

我有什么想念的吗?我应该不用FreshPageModelResolver.ResolvePageModel吗?

查看源代码,真正不需要静态实现:https://github.com/rid00z/FreshMvvm/blob/master/src/FreshMvvm/FreshPageModelResolver.cs

最佳答案

如果您对FreshPageModelResolver.ResolvePageModel所提供的功能感到满意,那就没错。但是,请像对待第三方依赖一样对待它,并将其封装在您自己的抽象后面,以保持代码的解耦和可维护性。

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
}


并且可以根据需要将接口注入到依赖类中。

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

08-25 23:56