C# MockDispatcher与FlowDocument一起使用时算术运算中的溢出或下溢 我正在测试单元测试中的函数SaveToFile

C# MockDispatcher与FlowDocument一起使用时算术运算中的溢出或下溢 我正在测试单元测试中的函数SaveToFile,c#,wpf,C#,Wpf,不幸的是,我得到了与dispated相关的错误。因此,我隔离了我的Dispatcher,并准备了在单元测试中注入的MockDispatcher 这是我注入的模拟调度程序: public class MockDispatcher : IDispatcher { public void BeginInvoke(Action method, params object[] args) { method.DynamicInvoke(args); } p

不幸的是,我得到了与dispated相关的错误。因此,我隔离了我的
Dispatcher
,并准备了在单元测试中注入的
MockDispatcher

  • 这是我注入的模拟调度程序:

    public class MockDispatcher : IDispatcher 
    {
        public void BeginInvoke(Action method, params object[] args)
        {
            method.DynamicInvoke(args);
        }
    
        public void Invoke(Action method, params object[] args)
        {
            method.Invoke();
        } 
    } 
    
  • 这是我测试的功能:

    public bool SaveToFile(string filePath)
    {    
        bool result = false;    
        Dispatcher.BeginInvoke(() =>
        {
            var document = GetFlowDocument(new List<Log>(Logs));
            result = _fileService.SaveTextRangeToRtf(new TextRange(document.ContentStart, document.ContentEnd), filePath);
    
            });    
        return result;
    }
    
    private FlowDocument GetFlowDocument(IEnumerable<Log> Logs) 
    {
        var document = new FlowDocument();
        var paragraph = new Paragraph();
    
        foreach (var item in Logs)
        {
            paragraph.Inlines.AddRange(_converter.ConvertToInlines(item));
        }
    
        document.Blocks.Add(paragraph);
    
        return document;
    }
    
    public bool SaveToFile(字符串文件路径)
    {    
    布尔结果=假;
    Dispatcher.BeginInvoke(()=>
    {
    var文件=GetFlowDocument(新列表(日志));
    结果=_fileService.SaveTextRangeToRtf(新的TextRange(document.ContentStart,document.ContentEnd),filePath);
    });    
    返回结果;
    }
    私有FlowDocument GetFlowDocument(IEnumerable日志)
    {
    var document=新流程文档();
    var段落=新段落();
    foreach(日志中的var项)
    {
    段落.Inlines.AddRange(_converter.converttoinline(项));
    }
    文件。块。添加(段落);
    归还文件;
    }
    
  • 我在单元测试中收到以下异常:

    算术运算中的溢出或下溢。

  • 在UI模式下,它可以正常工作