我正在测试一个在同一个类中调用另一个方法的方法。
根据此内部方法调用是否返回结果,我会做不同的事情。在这种情况下,它是一个Cache
类,我正在测试我的GetOrStore
方法。我想测试两条路径,何时Get
返回 null 和何时Get
返回something。
Get
控制调用时输出的正确方法是GetOrStore
什么?感觉Get
应该在模拟实例上执行但是我不确定如何在同一个类中给出两个方法来执行此操作。
更新
此时我唯一能想到的就是确保在运行测试之前删除缓存键:
HttpRuntime.Cache.Remove("foo"); // Make sure foo isn't in the cache.
var output = _cache.GetOrStore("foo", () => "Foo", 100);
Assert.AreEqual(output, "Foo");
但这只是感觉不对。我实际上不希望在测试期间触及 HttpRuntime 缓存。