尝试对单元测试有基本的了解。我创建了一个模型类,其中包含一个返回“Person”对象的方法。现在我想测试这个方法“GetPerson”是否实际上返回一个Person对象(P1)。
遵循“安排,行动,断言iv'e the人类的模式。我只是不知道如何从这里开始。希望得到一些帮助。
人类:
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(int id, string firstName, string lastName)
{
Id = id;
FirstName = firstName;
LastName = lastName;
}
Person p1 = new Person(1, "John", "Dhoe");
public Person GetPerson()
{
return p1;
}
}
测试类:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void GetPersonTest()
{
//Arrange
Person p = new Person(1, "John", "Dhoe");
//Act
//Assert
}
}
答案 0 :(得分:1)
您可以使用以下命令测试对象的成功创建:
var myPerson = new Person;
Assert.IsInstanceOf(myPerson, typeof(Person));
对于测试课程来说,这总是一个很好的第一单元测试。
答案 1 :(得分:0)
这段代码非常奇怪(并且会崩溃),但要完全填写此案例的测试:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void GetPersonTest()
{
//Arrange
Person p = new Person(0, "", ""); //note the change
//Act
Person result = p.GetPerson();
//Assert
Assert.AreEqual(1, result.Id);
Assert.AreEqual("John", result.FirstName);
Assert.AreEqual("Dhoe", result.LastName);
}
}
这没有意义,因为GetPerson
方法将始终返回同一个人,无论您传递给构造函数的是什么。
此外,正如Sriram Sakthivel所指出的,此代码无论如何会产生StackoverflowException
:)
这仍然是您当前实施的GetPerson
方法的测试。