【发布时间】:2009-07-02 03:30:50
【问题描述】:
所以我有一个类的方法如下:
public class SomeClass
{
...
private SomeDependency m_dependency;
public int DoStuff()
{
int result = 0;
...
int someValue = m_dependency.GrabValue();
...
return result;
}
}
我已经决定,与其每次都调用m_dependency.GrabValue(),我真的想将值缓存在内存中(即在这个类中),因为无论如何我们每次都会得到相同的值(依赖开始并从几乎不会更改的表中获取一些数据)。
我在尝试在单元测试中描述这种新行为时遇到了问题。我尝试了以下方法(我将 NUnit 与 RhinoMocks 一起使用):
[Test]
public void CacheThatValue()
{
var depend = MockRepository.GeneraMock<SomeDependency>();
depend.Expect(d => d.GrabValue()).Repeat.Once().Return(1);
var sut = new SomeCLass(depend);
int result = sut.DoStuff();
result = sut.DoStuff();
depend.VerifyAllExpectations();
}
但这不起作用;即使没有对功能进行任何更改,该测试也通过了。我做错了什么?
【问题讨论】:
-
很抱歉提出这个问题,但为什么要测试一些实现细节?
标签: c# tdd nunit rhino-mocks