CollectionAssert.IsSubsetOf for public 静态列表总是失败
CollectionAssert.IsSubsetOf for public static Lists always fails
我正在为从 linq-to-sql 查询构建的两个 public 列表执行 CollectionAssert。当我为这些做 CollectionAssert 时,它总是失败,即使对于一个显然应该通过的测试集也是如此。
我什至在我的代码中做了一个快速测试,以确保我正确使用了 CollectionAssert。
//This always passes
List<string> testList1 = new List<string>();
List<string> testList2 = new List<string>();
testList1.Add("one");
testList2.Add("two");
testList2.Add("three");
testList2.Add("one");
CollectionAssert.IsSubsetOf(testList1, testList2);
//This always fails
CollectionAssert.IsSubsetOf(memberOrganizations, member_Dim_Organization, "Error Matching Fields");
关于如何更正第二个断言的语法有什么想法吗?我附上了调试的屏幕截图 window。 Debug Screen Shot
我用一种方法定义列表结构的格式
namespace DefineStructure
{
public class Results
{
public string OrgID { get; set; }
}
这会在单独的
中加载数据
namespace Reporting.Member_Dim_Organization.ETL.QA
{
public class LoadData
{
public static cDataContext oMain = new cDataContext();
public static List<Results> oecMainResults = (from mo in oecMain.MemberOrganizations
orderby mo.OrgID
select new Results
{
OrgID = (mo.OrgID).ToString() }).Take(1).ToList();
然后我在我的主程序中声明它
namespace Reporting.Main
{
[Binding]
public class Member_Dim_OrganizationsSteps
{
public static List<Results> memberOrganizations = LoadData.oecMainResults;
public static List<Results> member_Dim_Organization = LoadData.reportingMasterResults;
这有助于澄清吗?
感谢您帮助正在尝试学习一些新技巧的老狗。
您假设如果两个集合具有具有相同 data 的实例,则它们是相等的,但默认情况下并非如此。听起来您需要覆盖 Results
class 上的 Equals
和 GetHashCode
才能定义 "equality"。
有很多为自定义类型定义相等性的示例,其中大部分涉及将哈希码定义为定义相等性的字段的哈希码的组合。
我正在为从 linq-to-sql 查询构建的两个 public 列表执行 CollectionAssert。当我为这些做 CollectionAssert 时,它总是失败,即使对于一个显然应该通过的测试集也是如此。
我什至在我的代码中做了一个快速测试,以确保我正确使用了 CollectionAssert。
//This always passes
List<string> testList1 = new List<string>();
List<string> testList2 = new List<string>();
testList1.Add("one");
testList2.Add("two");
testList2.Add("three");
testList2.Add("one");
CollectionAssert.IsSubsetOf(testList1, testList2);
//This always fails
CollectionAssert.IsSubsetOf(memberOrganizations, member_Dim_Organization, "Error Matching Fields");
关于如何更正第二个断言的语法有什么想法吗?我附上了调试的屏幕截图 window。 Debug Screen Shot
我用一种方法定义列表结构的格式
namespace DefineStructure
{
public class Results
{
public string OrgID { get; set; }
}
这会在单独的
中加载数据namespace Reporting.Member_Dim_Organization.ETL.QA
{
public class LoadData
{
public static cDataContext oMain = new cDataContext();
public static List<Results> oecMainResults = (from mo in oecMain.MemberOrganizations
orderby mo.OrgID
select new Results
{
OrgID = (mo.OrgID).ToString() }).Take(1).ToList();
然后我在我的主程序中声明它
namespace Reporting.Main
{
[Binding]
public class Member_Dim_OrganizationsSteps
{
public static List<Results> memberOrganizations = LoadData.oecMainResults;
public static List<Results> member_Dim_Organization = LoadData.reportingMasterResults;
这有助于澄清吗?
感谢您帮助正在尝试学习一些新技巧的老狗。
您假设如果两个集合具有具有相同 data 的实例,则它们是相等的,但默认情况下并非如此。听起来您需要覆盖 Results
class 上的 Equals
和 GetHashCode
才能定义 "equality"。
有很多为自定义类型定义相等性的示例,其中大部分涉及将哈希码定义为定义相等性的字段的哈希码的组合。