私はテストしたいサービスのメソッドを持っています。このメソッドは同じクラスの別のメソッドを呼び出します。このメソッドは既にテストされているので、そのメソッドを擬似したい。MOQを使用して同じインタフェースでメソッドを擬似します
これは私の設定です:
private readonly Mock<INewsLetterRepository> _mockNewsLetterRepository;
private readonly Mock<INewsLetterService> _mockNewsLetterService;
private readonly INewsLetterService _newsLetterService;
public NewsLetterServiceTest()
{
_mockNewsLetterRepository = new Mock<INewsLetterRepository>();
_mockNewsLetterService = new Mock<INewsLetterService> {CallBase = true};
_newsLetterService = new NewsLetterService(_mockNewsLetterRepository.Object);
}
そして、これは私が使用していますテストです:
さて問題は、関数は、私はからかっていますということです:BuildNewsLetterHTMLではなく、コンテンツのnullを返しますそれは戻ってくるはずです。ここで
は、私がテストしたい機能の簡易版である:public string CreateNewsLetter(NewsLetter newsLetter)
{
var newsletterHTML = BuildNewsLetterHTML(newsLetter);
return newsletterHTML;
}
だから、問題は、私はそれを参照してください少なくともとして、私はモック関数は、コンテンツの文字列を返さないことである、ということですそれは戻ってくるはずです。実際はnullであるため、テストはAssert.AreEqual
で失敗します。実際にnullである理由は何ですか?
ありがとうございます。
返信いただきありがとうございます。私はあなたの方法を試み、それは魅力のように働く! – Gerard