如何在单元测试中设置System.Type类型的属性?
如何在单元测试中设置System.Type类型的属性
你的School类里的SchoolType属性是System.Type类型,不需要用模拟框架,直接通过typeof()操作符获取对应类型的Type实例即可赋值,断言时也用同样方式对比。
示例代码说明
首先假设你有一个自定义的学校类型类(也可以用.NET内置类型,比如string、int等):
// 自定义示例类型 public class PrimarySchool { }
然后修改你的单元测试代码:
string expectedName = "Richmond"; // 用typeof获取目标类型的Type实例 var expectedType = typeof(PrimarySchool); var school = new School(); school.Name = expectedName; school.SchoolType = expectedType; Assert.AreEqual(expectedName, school.Name); // 断言时同样用typeof获取对应Type实例对比 Assert.AreEqual(typeof(PrimarySchool), school.SchoolType);
关键点
typeof(类型名)会返回该类型对应的System.Type对象,是.NET获取类型元数据的标准方式- 如果不需要自定义类型,也可以用内置类型测试,比如
typeof(string)、typeof(int) - 因为
Type对象是单例的,直接对比引用或者用Assert.AreEqual都能正确判断
内容的提问来源于stack exchange,提问作者Bhav
相关产品推荐
相关产品推荐

