我认为这个问题之前已经被问过了。 它通常与以下几点不同: 严格模拟在每次未被期望的调用时都会抛出异常 动态模拟接受意外的调用并返回默认值(例如null) 存根类似于动态模拟,但默认情况下打开了“属性行为”。这允许编写和读取像字段一样的属性,但不允许在属性上使用Stub、Expect或AssertWasCalled。这种行为也可以在普通模拟中配置。但对于存根来说,这是默认值。 自从Rhino更改为AAA语法,强烈不建议使用严格模拟,因为它使测试代码非常难以维护。 类似的问题: Rhino Mocks中模拟和存根之间的区别是什么? Rhino Mocks - GenerateStub<T>和GenerateMock<T>之间的区别是什么? 我找不到关于Rhino实现的信息,所以我没有将这个问题标记为重复。