4
2011年5月21日の最新のNSubstituteリリース1.1.0をダウンロードしました。このリリース以前はNSubはoutパラメータをサポートしていなかったようです。中間リリースを通じてサポートを提供するためにいくつかの作業が行われているようです:NSub Google Group。'out'パラメータを模擬する方法は?
だから、私はすべての作品を稼働させるのに少し問題があります。私はここでDirectoryInfo
を模擬するためにSystemWrapperを使用していますことは、私のインターフェイスです:
public interface INetworkPath
{
void SetPath(string NetworkPath);
bool TryGetDirectoryInfo(out IDirectoryInfoWrap DirectoryInfo);
}
...とテスト:
public void SetNetworkPath_SetDirectoryInfo()
{
var netPath = Substitute.For<INetworkPath>();
netPath.SetPath("SomeNetworkPath");
IDirectoryInfoWrap DirectoryInfo;
netPath.TryGetDirectoryInfo(out DirectoryInfo)
.Returns(d => { // cannot convert lambda expression to type bool because it is not a delegate type
d[1] = Substitute.For<IDirectoryInfoWrap>(); // d[1] is read only
return true;
});
Assert.IsNotNull(DirectoryInfo);
}
がINetworkPathインターフェースからパラメータを模擬する方法はあります?
更新
しようとしました次:それはコンパイルが、DirectoryInfo
はNULLを返し:
[Test]
public void SetNetworkPath_SetDirectoryInfo()
{
var netPath = Substitute.For<INetworkPath>();
netPath.SetPath("SomeNetworkPath");
IDirectoryInfoWrap DirectoryInfo;
netPath.TryGetDirectoryInfo(out DirectoryInfo)
.Returns(d => {
d = (CallInfo)Substitute.For<IDirectoryInfoWrap>();
return true;
});
Assert.IsNotNull(DirectoryInfo);
}
@ブロンマスキーの答えは正しいです。これに対するサポートは2011年7月現在ではリリースされていません。この変更により、すぐに1.2リリースを予定しています。 –
ありがとう、@デイビッド...次のリリースを楽しみにしています。 – IAbstract
FYI、NSubstitute 1.2は、[設定と照会パラメータ](http://nsubstitute.github.com/help/setting-out-and-ref-arguments/)の基本サポートとともにリリースされました。遅延のお詫び –