gpt4 book ai didi

c# - 使用 Moq 在函数内模拟与数据源的连接?

转载 作者:行者123 更新时间:2023-11-30 19:51:33 24 4
gpt4 key购买 nike

我开始使用 Moq,但我不知道如何在下面的代码中测试方法 Execute:

我有以下类(class):

public class MyObject {
private IDataReaderPlugin m_source;
private IDataWriterPlugin m_dest;
private string[] m_dummyTags = new string[] { "tag1", "tag2", "tag3"};

public void Execute(DateTime time)
{
DataCollection tags = m_source.SnapshotUtc(m_dummyTags, time);

//Doing some treatment on the values in tags

m_dest.Write(tags);
}

另一个方法负责根据配置文件中的信息创建和初始化 IDataReaderPlugin 和 IDataWriterPlugin。

我想测试 Execute 方法。因此,我需要模拟 m_sourcem_dest,然后我想测试发送到 m_dest 的结果。

如何使用 Moq 实现这一点?

谢谢。

最佳答案

[Test]
public void ShouldWriteToMDest()
{
// Arrange
var mockDest = new Mock<IDataWriterPlugin>();
var mockSource = new Mock<IDataReaderPlugin>();
string[] m_dummyTags = new string[] { "tag1", "tag2", "tag3"};

mockSource.Setup(source => source.SnapshotUtc(m_dummyTags, It.IsAny<DateTime>()).Returns(/*whatever you need*/);

var myObj = new MyObject(mockSource.Object, mockDest.Object);

// Act
myObj.Execute(DateTime.Now);


// Assert
Assert.That(mockSource.Object.WhateverPropertyContainsOutput == /*Whatever you need */);

}

关于c# - 使用 Moq 在函数内模拟与数据源的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922013/

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