实施问题。
我有一个Builder方法FooBuilder(),可以调用许多东西来构建FooModel模型。
FooBuilder()有一些相互依赖的方法,例如调用BarBuilder的Tire(barBuilder),以及许多不依赖于任何执行顺序的SteeringWheel。
示例:
[Test]
public void then_should_build_steering_wheel_model()
{
// Arrange
var FooBuilder = new FooBuilder();
var itemKey = new ItemKey{Vendor = 10};
//Here's the setup of BarBuilder for other classes elsewhere
var BarBuilder = new Mock<IBarBuilder>();
BarBuilder.Setup(builder => builder.BuildUpBarMaster(itemKey.Vendor)).Returns(BarModel);
// Act
FooBuilder.CreateSteeringWheelModel(itemKey.vendor);
// Assert
FooBuilder.Verify(builder => builder.BuildUpSteeringWheelModel(itemKey.vendor));
有没有办法为无状态的方法(SteeringWheel)构建测试而不进行有状态部分的设置(BarBuilder)?
答案 0 :(得分:0)
我发现这个解决方案使BarBuilder不返回BarBuilder模型的实例,而是返回需要传递给该行的原始类型。
原语允许Moq成功忽略有关我收到的空对象的null方法依赖关系的错误。然后,Moq会传入0并且按预期运行程序,让我只使用.Setup来处理我实际需要的事情。