【发布时间】:2020-01-27 06:03:18
【问题描述】:
大家,我正在为我的 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 方法缺少 TestContext 类型的单个参数。
-
我也这样做了但是我仍然看到同样的错误
标签: c# unit-testing