c# - 错误 CLassInitialize 签名错误。方法必须是静态的,公开的,不返回值
问题描述
大家,我正在为我的 Builder 类编写单元测试,但出现以下错误。方法 TestDB.BuilderTest.CustomerBuilderTest.CLassInitialize 具有错误的签名。该方法必须是静态的,public 不返回值,并且应该采用 TestContext 类型的单个参数。此外,如果您在方法中使用 async-await,则返回类型必须是 Task。
这是我的单元测试
[TestClass]
public class CustomerBuilderTest
{
private static CustomerDeserializer _customerDeserializer;
private static string path;
[ClassInitialize]
public static void CLassInitialize(TestContext context)
{
path = Path.Combine(Environment.CurrentDirectory, @"Folder\", "Customer.json");
}
[TestInitialize]
public static void TestInitialize()
{
_customerDeserializer = new CustomerDeserializer();
}
[TestMethod]
public void CusomerBuilder_MustReturnCustomers()
{
//Arange
//Act
var dtos = CustomerDeserializer.Deserialize(path);
var dto = dtos.FirstOrDefault(e => e.Email == "hi@gmail.com");
var customer = CustomerBuilder.CustomerBuild(dto);
//Asset
Assert.IsNotNull(dto);
Assert.AreEqual(customer.FirstName,"tina");
}
}
}
这是我的 Builder 课程
public class CustomerBuilder
{
public static Customer CustomerBuild(DtoCustomer dto)
{
return new Customer()
{
FirstName = dto.FirstName,
LastName = dto.LastName,
Address = dto.Address,
Email = dto.Email,
Code = int.Parse(dto.Code),
PhoneNumber = dto.Phone
};
}
}
我检查了很多网站,但我没有找到任何解决方案,你能帮我吗?
解决方案
该ClassInitialize
属性需要添加括号,其次尝试使方法名称与属性不同,因为它可能会使编译器感到困惑。所以试试:
[ClassInitialize()]
public void CLassInitialization(TestContext context)
{
path = Path.Combine(Environment.CurrentDirectory, @"Folder\", "Customer.json");
}
并且您可能还需要为 the 应用相同的内容TestInitialize
:
[TestInitialize]
public void TestInitialization()
{
_customerDeserializer = new CustomerDeserializer();
}
推荐阅读
- reactjs - 在没有任何构建工具的情况下理解 Kotlin React
- firebase - 从 Firebase 中的 2 个集合中获取数据
- sql - Oracle 文本搜索 - 没有确切长度的模糊结果
- css - 禁用文本选择
- audio - 24kHz 音频文件问题:不支持比特率 64000
- kubernetes - 如何在位于不同区域的两个私有 GCP 集群之间建立通信?
- javascript - 使用 javascript 返回 sqlite 事务
- html - CSS选择器:有没有办法选择整个html中具有相同类名的最后一个元素?
- python - 如何使用 Python startswith 方法来组合 unicode 和 ascii 字符串?
- c# - 找出多个最长的单词并计算它们重复的次数