本文介绍了单元测试:使用MSTest将复杂对象作为输入参数发送到我的测试方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正尝试使用以下DataRow
属性将List<DataStatusItem>
作为输入参数发送到我的单元测试方法,
I'm trying to send a List<DataStatusItem>
as a input parameter to my unit test method using DataRow
attribute as below,
[TestClass]
public class UpdateProcessingTestController
{
private List<DataStatusItem> DataStatusItemsTestSetup = new List<DataStatusItem>() {
new DataStatusItem { DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now }
};
private readonly Mock<IEmployee> moqEmployee;
public UpdateProcessingTestController()
{
moqEmployee = new Mock<IEmployee>();
}
[TestMethod]
[DataRow(DataStatusItemsTestSetup, 1, 8, 1)] // **This is where it is throwing me compilation error**
public void SetDataItems(List<DataStatusItem> DataStatusItems,int brand, int dataType, int processingStatus)
}
请让我知道如何将列表作为输入参数发送到我的测试方法.
Please let me know how to send the List as a input parameter to my test method.
推荐答案
使用 DynamicData属性,下面是一个示例:
Use DynamicData Attribute, Here is an example:
public class DataStatusItem
{
public int DataItemID { get; set; }
public int DataItemCurrentStatusID { get; set; }
public int DataItemStatusID { get; set; }
public DateTime DateEffective { get; set; }
}
[TestClass]
public class UpdateProcessingTestController
{
static IEnumerable<object[]> DataStatusItemsTestSetup
{
get
{
return new[]
{
new object[]
{
new List<DataStatusItem>
{
new DataStatusItem { DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now },
new DataStatusItem { DataItemID = 2, DataItemCurrentStatusID = 2, DataItemStatusID = 2, DateEffective = DateTime.Now },
},
1, // brand
2, // dataType
3 // processingStatus
}
};
}
}
[TestMethod]
[DynamicData(nameof(DataStatusItemsTestSetup))]
public void SetDataItems(List<DataStatusItem> dataStatusItems, int brand, int dataType, int processingStatus)
{
Assert.AreEqual(2, dataStatusItems.Count);
Assert.AreEqual(1, brand);
Assert.AreEqual(2, dataType);
Assert.AreEqual(3, processingStatus);
}
}
这篇关于单元测试:使用MSTest将复杂对象作为输入参数发送到我的测试方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!