【发布时间】:2016-10-06 14:53:52
【问题描述】:
我有一些重复的代码,但不确定简化它的最佳方法。
private void CheckData(long PKID, int ExpectedResult, string Server)
{
var a = _ARepo.GetAll();
var b = _BRepo.GetAll();
if(Server == "A")
{
a.Find(x => x.PKID == PKID).Result.ShouldBe(ExpectedResultId);
}
if (Server == "B")
{
b.Find(x => x.PKID == PKID).Result.ShouldBe(ExpectedResultId);
}
}
这是一个单元测试项目,我正在使用Shouldly 库。任何想法表示赞赏。
【问题讨论】:
-
a和b有哪些类型? -
(Server == "A" ? a : b).Find(...) 我想。或者只是引入一个变量并为其分配 a 或 b,具体取决于 Server。然后在这个变量上查询 Find。
-
@GiladGreen 它们是使用 Repository 模式的同一类型,
Dapper从 SQL Server 数据库中获取数据。 -
在进行任何检查之前,从 Repo A 或 Repo B 获取数据不是更好吗?您只需要在此处获取大量数据。
-
与其节省代码行,不如只访问一个存储库而不是两个存储库来提高性能。
标签: c# c#-5.0 code-duplication