c# - 有效的类层次结构?
问题描述
以下类层次结构对 TDD 有效吗?我有两个相关的类层次结构,我需要在每个创建者中使用一种类型的 Info 对象。您是否知道更好地做到这一点的常见模式(也许使用泛型)?这是可测试的吗?
namespace ClassTest
{
interface IProjectInfo
{
void Info1();
void Info2();
}
class ProjectAInfo : IProjectInfo
{
public ProjectAInfo(string projectAData)
{
ProjectAData = projectAData;
}
public string ProjectAData { get; private set; }
public void Info1() { }
public void Info2() { }
}
class ProjectBInfo : IProjectInfo
{
public ProjectBInfo(string projectBData)
{
ProjectBData = projectBData;
}
public string ProjectBData { get; private set; }
public void Info1() { }
public void Info2() { }
}
interface IProjectCreator
{
void Create1();
void Create2();
}
class ProjectACreator : IProjectCreator
{
public ProjectACreator(ProjectAInfo projectAInfo)
{
ProjectAInfo = projectAInfo;
}
public ProjectAInfo ProjectAInfo { get; private set; }
public void Create1() { }
public void Create2() { }
}
class ProjectBCreator : IProjectCreator
{
public ProjectBCreator(ProjectBInfo projectBInfo)
{
ProjectBInfo = projectBInfo;
}
public ProjectBInfo ProjectBInfo { get; private set; }
public void Create1() { }
public void Create2() { }
}
}
info 和 creator 类共享公共接口。创建者需要信息类进行操作。
谢谢!
解决方案
这不是 TDD。使用 TDD,目的是先编写测试。如果您先编写测试,那么该测试将产生一个类层次结构并且它是可测试的。为了更好地理解 TDD,请看一下:
如果您的问题只是:这是可测试的吗?是的,它是可测试的。
推荐阅读
- node.js - NPM 警告缺少安装的软件包?
- selenium - Selenium 不加载重定向页面
- pa11y - pa11y failed to Error: 无法启动 chrome
- php - PHP artisan migrate 不会迁移所有表
- recursion - 为什么递归斐波那契的时间复杂度是 O(2^n) 而不是 O(n*2^n)?
- django - AttributeError:模块“django.contrib.auth”没有属性“模型”。我错过了什么?
- androidx - com.google.android.gms.common.internal.zzf 类型被引用为来自 `com.google.android.gms.internal.zzcms` 的接口
- gsm - 无法使用 GPRS 发布数据
- pandas - pandas df.plot 制作宽度变化的条形图
- azure - 配置文件不包含所需的 providerName 属性,Azure Api