Я разрабатываю игру на линкоре в ASP.NET, и у меня возникла проблема с моими юнит-тестами с помощью MSTest.
Я хочу проверить создание каждого типа лодки и убедиться, что каждыйконструктор лодки делает нужную лодку с хорошей шириной и т. д. Итак, я решил написать общий метод с тегом [DataTestMethod].Но я не понимаю, как я могу использовать объект в качестве параметра.
Вот пример того, что я хочу:
[DataTestMethod]
[DataRow("Aircraft Cruiser", 5, OccupationType.Aircraft, new Aircraft())]
public void CreateAircraft(string description, int width, OccupationType occupationType, Ship resultShip)
{
var expectedShip = new Ship
{
Description = description,
Width = width,
OccupationType = occupationType
};
Assert.AreEqual(expectedShip, resultShip)
}
Но это явно не работает.Поэтому я сделал что-то подобное:
[DataTestMethod]
[DataRow("Aircraft Cruiser", 5, OccupationType.Aircraft, "Aircraft")]
public void CreateAircraft(string description, int width, OccupationType occupationType, string shipType)
{
var expectedShip = new Ship
{
Description = description,
Width = width,
OccupationType = occupationType
};
Ship resultShip = null;
switch (shipType)
{
case "Aircraft":
resultShip = new Aircraft();
break;
}
Assert.AreEqual(expectedShip, resultShip);
}
, но я уверен, что это не самый эффективный способ сделать то, что я хочу.У вас есть идея?
Большое спасибо.