【发布时间】:2023-03-20 09:50:01
【问题描述】:
我正在尝试以这样一种方式构建我的单元测试,即如果我更改正在测试的对象的构造函数,我就不必更改很多测试。这是我现在设置的简化示例:
[TestMethod]
public void Test1()
{
_mockedObject1.Setup(etc);
_mockedObject2.Setup(etc);
var service = new TestedService(_mockedObject1.Object, _mockedObject2.Object, ...,
_mockedObject7.Object);
//Act and Assert
}
现在我有 20 个以相同方式排列的单元测试。如果我必须更改 TestedService 的构造函数,我必须进入所有 20 个测试并更改创建服务的行。我可以将这行代码提取到 TestInitialize 或其他东西中,以便我只需要更改一次吗?我的第一个想法是我不能,因为那时服务会在我的 .Setups 之前创建。有没有其他方法可以解决这个问题?
【问题讨论】:
-
您是否使用 DI 容器,例如 Ninject?
标签: c# unit-testing moq mstest