У меня есть система, в которой все мои классы расширяют базовый класс Sol.Data.Object
. В этом базовом классе у меня есть один метод для получения данных из базы данных:
public static ObjectType ReadById<ObjectType>(string schema, long id)
{
SqlCommand command = User.CreateCommand(string.Format("{1}.Retrieve{0}",
typeof(ObjectType).Name,
schema),
new SqlParameter("@ID", id));
.....
}
Я назову этот метод, например, так: Sol.Movie.ReadId("dbo", 2)
Я использовал Visual Studio 2010 для создания модульного теста для этого метода:
public void ReadByIdTestHelper<ObjectType>()
{
string schema = "dbo";
long id = 1;
ObjectType expected = default(ObjectType); //What should I put in here?!
ObjectType actual;
actual = Sol.Data.Object.ReadById<ObjectType>(schema, id);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
[TestMethod()]
public void ReadByIdTest()
{
ReadByIdTestHelper<Sol.Movie>();
}
Как мне определить ожидаемый тип? Я пробовал typeof(ObjectType)
, но это вызывает ошибку компиляции.
Спасибо за помощь!
1 ответ
Я использовал этот метод, чтобы исправить проблему:
public void ReadByIdTestHelper<ObjectType>()
{
string schema = "dbo";
long id = 1;
Sol.Movie movie = new Movie();
ObjectType actual;
actual = Sol.Data.Object.ReadById<ObjectType>(schema, id);
Assert.AreEqual((actual is ObjectType), true);
}
[TestMethod()]
public void ReadByIdTest()
{
ReadByIdTestHelper<Sol.Movie>();
}
Однако не знаю, лучший ли это способ сделать это.
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.