2 つの関数呼び出しが正しい順序で行われることを確認する単体テストが必要です。この例では、最初の関数はファイルを暗号化してファイル システムに保存し、2 番目の関数は暗号化されたファイルを (FTP 経由で) サード パーティのプロセッサに送信します。
NSubstitute をモック フレームワークとして使用し、FluentAssertions を使用してテスト検証を支援しています。これは、すぐに使用できる NSubstitute で実現できるものではないようです。
public void SendUploadToProcessor(Stream stream, string filename)
{
var encryptedFilename = FilenameBuilder.BuildEncryptedFilename(filename);
FileEncrypter.Encrypt(stream, filename, encryptedFilename);
FileTransferProxy.SendUpload(encryptedFilename);
}
[TestMethod, TestCategory("BVT")]
public void TheEncryptedFileIsSent()
{
var stream = new MemoryStream();
var filename = Fixture.Create<string>();
var encryptedFilename = Fixture.Create<string>();
FilenameBuilder
.BuildEncryptedFilename(Arg.Any<string>())
.Returns(encryptedFilename);
Sut.SendUploadToProcessor(stream, filename);
// Something here to verify FileEncrypter.Encrypt() gets called first
FileTransferProxy
.Received()
.SendUpload(encryptedFilename);
}