我有一个测试类,我希望能够将可选类传递给。在我的测试中,我在测试中定义了一个客户类
public class Customer
{
public string id { get; set; }
public string firstName { get; set; }
...
}
我还在测试类加载时初始化了一个这样的实例
public class TestClass
{
public static string APIKEY = "myapikey";
Customer dummyCustomer = new Customer() { ...};
这在我的测试中运作良好,所以我可以做到
[TestMethod]
public void IsAPIActive()
{ ...
var response = _service.GetResponse(dummyCustomer)
但现在我希望能够从另一个测试中调用一个测试,并可选择将客户传递给该类
[TestMethod]
public int CanCreateCustomer(Customer customer = dummyCustomer)
{ ....
return response.Customer.CustomerId;
为了让现有的测试能够接收默认的虚拟客户,但我的其他一些测试可以将不同的客户对象传递给它。
当我添加此默认客户时,我只收到一条消息:
Default parameter value for 'customer' must be a compile-time constant.
答案 0 :(得分:1)
首先,问问自己,您希望通过测试实现?是否已经测试?
然后,如果测试依赖于其他测试,那么你做错了什么,所以再想一想。测试应该隔离到其自己的上下文,不依赖于其他测试。
但是,如果你有两个测试相同的代码片段,那么你应该将它提取给它自己的两个测试可以调用的函数。但请记住良好测试仅测试一个事物。