【发布时间】:2018-10-16 16:17:10
【问题描述】:
我正在处理一个项目,我必须在 C# 中对工厂设计模式进行单元测试。 目前我被卡住了,我不知道我也要做些什么。有人可以帮我吗?我想对这段代码进行单元测试:
public class CinemaFactory : AbstractFactory //inheritance of AbstractFactory
{
public override Space createspace(AddItemsInProps item)
{
//returns new Cinema
return new Cinema(item.AreaType, item.Position, item.Dimension);
}
}
我还做了一个单元测试项目并创建了这个:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
//Arrange
Game1.Design_Patterns.CinemaFactory cinemaFactory = new Game1.Design_Patterns.CinemaFactory();
//Act
//Assert
}
}
电影院:
public class Cinema : Space //inheritance of Space class
{
//Named arguments free you from the need to remember or to look up the order of parameters in the parameter lists of called methods.
public Cinema(string areaType, string position, string dimension) : base(areaType, position, dimension)
{
//The sprite of the Cinema
this.Img = "cinema";
}
public void StartMovie()
{
}
}
这是类 AddItemsInProps:
public class AddItemsInProps
{
//Get: The get { } implementation must include a return statement. It can access any member on the class.
//Set: The set { } implementation receives the implicit argument "value." This is the value to which the property is assigned.
public string Classification { get; set; }
public string AreaType { get; set; }
public string Position { get; set; }
public string Dimension { get; set; }
public int Capacity { get; set; }
public int ID { get; set; }
}
}
这是类空间:
public abstract class Space
{
public string AreaType { get; set; }
public Point Position { get; set; }
public Point Dimension { get; set; }
public int ID { get; set; }
public string Img { get; set; }
public int Afstand { get; set; }
public Space Vorige { get; set; }
public Dictionary<Space, int> Neighbours = new Dictionary<Space, int>();
这是抽象工厂类:
public abstract class AbstractFactory
{
//Creating Object
public abstract Space createspace(AddItemsInProps item);
}
【问题讨论】:
-
你到底需要测试什么?
-
嗨,我想测试 Factory CinemaFactory 是否返回返回新的 Cinema(item.AreaType, item.Position, item.Dimension)。我不知道如何测试它
-
您有权编辑您的帖子吗?请添加
AddItemsInProps、Cinema、Space和AbstractFactory的定义——基本上是编译代码所需的所有内容 -
添加了一个测试示例。
标签: c# unit-testing tdd