gpt4 book ai didi

c# - 修改已设置的 mock 属性

转载 作者:行者123 更新时间:2023-11-30 18:17:10 26 4
gpt4 key购买 nike

我将稍微简化一下问题:

在我的测试中,我使用了一个模拟对象(我模拟它是因为它调用了一个 bdd),我将参数提供给另一个对象(未模拟)的方法,其目的是修改这个模拟对象的属性。

ModifyingClass myModifyingClass = new ModifyingClass();
Mock<ToModifyClass> mockedClass = new Mock<ToModifyClass>();
mockedClass.Setup(mc => mc.name).Returns("Test1");
myModifyingClass.modify(mockedClass.Object);

modify 方法然后尝试设置模拟对象的属性名称,但它不起作用,所以这可能是正常行为,但我真的需要测试所有这些是否有效并且如果方法 modify 设置我想要的属性。

最佳答案

如评论中所述,您需要以不同方式设置模拟类,以保留传递给属性的值。

引用 Moq - Quickstart

Stub all properties on a mock (not available on Silverlight):

mock.SetupAllProperties();

提供的示例测试看起来像...

//Arrange
var myModifyingClass = new ModifyingClass();
var mockedClass = new Mock<ToModifyClass>();
mockedClass.SetupAllProperties(); //<-- this will allow property changes to be retained.
var model = mockedClass.Object;
//set the property now that it can be set
model.name = "Test1";
var expected = "expected value here";

//Act
myModifyingClass.modify(model);

//Assert
var actual = model.name;
Assert.AreEqual(expected, actual);
//... other assertions

关于c# - 修改已设置的 mock 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44695273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com