C#.net框架,在写单元测试的时候,调到了另外一个类Route中的变量private ArrayList mStepList = new ArrayList(); 但因为这个地方为空报错了,该怎么处理呢?
以下是我的单元测试
public void JobStartCheckTest()
{
// Arrange
var taskManager = new TaskManager();
ProcessJob job1 = CreatePjob("job1", "1");
ProcessJob job2 = CreatePjob2("job2", "2");
CreateClusterTask(job1, 1);
CreateClusterTask(job2, 2);
// 使用反射获取字段
var taskIdField = typeof(TaskManager).GetField("taskList", BindingFlags.NonPublic | BindingFlags.Instance);
var clusterTask1 = new ClusterTask("task1", new List<ProcessJob>() { job1 }, new MaterialActionContainer("P1", 2, "", "", 1, "", ""), new MaterialActionContainer("PM1", 2, "", "", 1, "", ""),
1, null, 1, TaskMode.Smart, true, true, true, new Dictionary<int, string>(), new Dictionary<string, string>(), new Dictionary<string, string>(), false);
var clusterTask2 = new ClusterTask("task2", new List<ProcessJob>() { job2 }, new MaterialActionContainer("P1", 2, "", "", 1, "", ""), new MaterialActionContainer("PM1", 2, "", "", 1, "", ""),
1, null, 2, TaskMode.Smart, true, true, true, new Dictionary<int, string>(), new Dictionary<string, string>(), new Dictionary<string, string>(), false);
Dictionary<int, Task> taskList = new Dictionary<int, Task>() { { 1, clusterTask1 },{ 2, clusterTask2 } };
taskIdField.SetValue(taskManager, taskList);
// Act
var start = taskManager.JobStartCheck(1, out Task task);
// Assert
Assert.AreEqual(false, start);
}
最新发布