2011-04-29 72 views
0

我是依赖于iTextSharp开源Pdf库的单元测试代码。 TextText中的一个类是PdfReader,其中一个接受字节数组的构造函数。我简单的问题如下:为什么框架不能绕行?

[TestMethod] 
    [HostType("Moles")] 
    public void ReadPdf() 
    { 
     MPdfReader.ConstructorByteArray = (@this, pdfIn) => 
     { 
      new MPdfReader(@this) 
      {      
      }; 
     }; 

     PdfReader reader = new PdfReader(new byte[] { 10, 20, 30 }); 
    } 

然而,这个代码仍然调用真正的PdfReader,而不是模拟:

iTextSharp.text.pdf.PdfReader.CheckPdfHeader iTextSharp.text.pdf.PdfReader .ReadPdf() iTextSharp.text.pdf.PdfReader..ctor(字节[] pdfIn,字节[] ownerPassword) iTextSharp.text.pdf.PdfReader..ctor(字节[] pdfIn)

和不惊奇地,它爆炸与“.. System.IO.IOException:未找到PDF标头签名..”

我做不知道自己做错了什么....

-Stan

回答

0

我假设你正试图化解构造函数调用,它接受一个字节数组。尝试删除构造函数过载中的实例参数:

[TestMethod] 
[HostType("Moles")] 
public void ReadPdf() 
{ 
    MPdfReader.ConstructorByteArray = (@this, pdfIn) => 
    { 
     new MPdfReader() 
     { 
     }; 
    }; 
    PdfReader reader = new PdfReader(new byte[] { 10, 20, 30 }); 
}