メソッドをモックしようとしていますが、エラーなしでコンパイルされますが、テストを実行すると奇妙なことが起こります。実際、メソッドはモックではありませんか、おそらく私はsmthを理解していません...(
コードは次のとおりです。
public class Robot
{ ....
public virtual bool range(IObs ob, double range)
{
double dist = ob.distanceSq(this);
if (dist < range)
return true;
else
return false;
}
}
...
public interface IObs
{
double distanceSq(Robot r);
}
...
単体テスト:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
MockRepository mocks = new MockRepository();
IObs obstacleMock = mocks.CreateMock<IObs>();
Robot r = new Robot();
Expect.Call(obstacleMock.distanceSq(r)).IgnoreArguments()
.Constraints(Is.Anything())
.Return(5.5);
Assert.IsTrue(r.range(obstacleMock, 0.5));
}
}
distanceSq() をモックします。テストをデバッグすると、ob.distanceSq(this) が 0.0 であることがわかります。(1.5 ではない)。
どうしたの?