如果您需要测试另一个项目中的非公共属性,它会使用 Microsoft 单元测试向导创建 Accessor 对象。在我的单元测试中,我创建了辅助函数,这样我就不会在每个单元测试方法中重复相同的代码。目前我有两个几乎相同的测试,除了一个采用标准对象,另一个采用 Accessor 版本。由于访问器基于标准版本,我应该能够拥有一个功能,并且我认为我应该能够使用泛型来完成。问题是尝试重新输入和编译失败。
以下是现有的两个功能:
// Common function to create a new test record with standard Account object
internal static void CreateAccount(out Account account, bool saveToDatabase)
{
DateTime created = DateTime.Now;
string createdBy = _testUserName;
account = new Account(created, createdBy);
account.Notes = Utilities.RandomString(1000);
if (saveToDatabase)
account.Create();
}
// Common function to create a new test record with Account_Accessor
internal static void CreateAccount(out Account_Accessor account, bool saveToDatabase)
{
DateTime created = DateTime.Now;
string createdBy = _testUserName;
account = new Account_Accessor(created, createdBy);
account.Notes = Utilities.RandomString(1000);
if (saveToDatabase)
account.Create();
}
我尝试将组合函数的签名更改为:
internal static void CreateAccount<T>(out T account, bool saveToDatabase) {...}
但无法将 T 正确地重铸为 Account 或 Account_Accessor。有什么建议么?