首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xUnit框架在C# Net Core2.1函数应用程序中模拟

使用xUnit框架在C# Net Core2.1函数应用程序中模拟
EN

Stack Overflow用户
提问于 2020-02-15 08:34:07
回答 1查看 195关注 0票数 1

我正在尝试使用xUnit框架在C# .Net Core2.1函数应用程序中编写单元测试,其中类变量通过Autofac依赖项注入进行初始化。

代码语言:javascript
复制
public class TestClass
{
    private readonly ISampleLogger<SampleReporting> sampleLogger;
    private readonly IRequestSender requestSender;

    public SampleReporting(IDependencyResolver dependencyResolver)
    {
        dependencyResolver?.Resolve<ISampleLoggingStartup>().Configure();
        this.sampleLogger = dependencyResolver.Resolve<ISampleLogger<SampleReporting>>();
        this.requestSender = dependencyResolver.Resolve<IRequestSender>();
    }
...

public void FunctionToTest(string s)
{
    ...

我试图模拟dependencyresolver对象,但不知道如何模拟变量sampleLogger和requestSender,因为它们是在构造函数中进行内部设置的。任何线索都将不胜感激。

我试着这样模拟IDependencyResolver,但无法让它工作:

代码语言:javascript
复制
private readonly Mock<IDependencyResolver> dependencyResolverMock;

[Fact]
public void Test1()
{
    dependencyResolverMock.Setup(x => x.Resolve<It.IsAny<ISampleLoggingStartup>>().Configure());
EN

回答 1

Stack Overflow用户

发布于 2020-07-16 04:35:22

在测试构造函数中使用以下代码对我来说效果很好:

代码语言:javascript
复制
public ReportingTest()
{
    dependencyResolverMock = new Mock<IDependencyResolver>();

    dependencyResolverMock.Setup(x => x.Resolve<ISampleLogger<SampleReporting>>()).Returns(Mock.Of<ISampleLogger<SampleReporting>>());
    dependencyResolverMock.Setup(x => x.Resolve<IRequestSender()).Returns(Mock.Of<IRequestSender>());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60235029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档