私は最近、静的、非仮想、封印などの多くの要素を含むいくつかのロジックをテストするために、Pex & Moles の時流に乗りました。最近、いくつかのテストから説明できない動作を見始めました。 .
私がスタブ化したインターフェイスのいくつかのメソッドは void を返すため、スタブをデリゲートに設定し、ブール変数を更新してそれらが呼び出されたことを示します。これが私がやっていることです:
[TestMethod]
[HostType("Moles")]
public void UnitTestX()
{
bool disposeCalled = false;
bool getCalled = false;
ClassX classX = new ClassX();
var data = new SIClassXData
{
Dispose = () => disposeCalled = true,
Get = () => getCalled = true,
ClassXGet = () => classX
};
MDataLayerFactory.CreateDataLayerObject(() => (IClassXData)data);
Assert.IsTrue(disposeCalled);
Assert.IsTrue(getCalled);
}
何らかの理由で、このテストを単独で実行すると、上記のアサートは成功します。しかし、(Visual Studio の [ソリューション内のすべてのテストを実行] 機能を使用して) アセンブリ内の他のすべてのテストと共にテストを実行すると、最初のアサートが失敗します。
この問題が発生する理由と、問題を解決するために何を変更する必要があるかを知りたいです。