use*_*749 5 c# tdd unit-testing
我正在开发一个项目,并且必须在 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);
}
}
Run Code Online (Sandbox Code Playgroud)
我还制作了一个单元测试项目并创建了这个:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
//Arrange
Game1.Design_Patterns.CinemaFactory cinemaFactory = new Game1.Design_Patterns.CinemaFactory();
//Act
//Assert
}
}
Run Code Online (Sandbox Code Playgroud)
电影:
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()
{
}
}
Run Code Online (Sandbox Code Playgroud)
这是 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; }
}
}
Run Code Online (Sandbox Code Playgroud)
这是空间类:
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>();
Run Code Online (Sandbox Code Playgroud)
这是 AbstractFactory 类:
public abstract class AbstractFactory
{
//Creating Object
public abstract Space createspace(AddItemsInProps item);
}
Run Code Online (Sandbox Code Playgroud)
创建被测主题的实例并提供必要的依赖项。
[TestClass]
public class CinemaFactorTests {
[TestMethod]
public void CinemaFactory_Should_Create_Cinema() {
//Arrange
var cinemaFactory = new Game1.Design_Patterns.CinemaFactory();
var item = new AddItemsInProps {
//set necessary properties here
AreaType = "value here",
Position = "value here",
Dimension = "value here"
};
//Act
var actual = cinemaFactory.createspace(item);
//Assert
Assert.IsNotNull(actual);
Assert.IsInstanceOfType(actual, typeof(Cinema));
//...you can also compare property values from item and actual for equality
Assert.AreEqual(item.AreaType, actual.AreaType);
//...
}
}
Run Code Online (Sandbox Code Playgroud)
调用被测方法,然后用实际行为验证预期行为
| 归档时间: |
|
| 查看次数: |
9599 次 |
| 最近记录: |