unit-testing - 是否可以在 xUnit 中使用依赖注入(inject)?

标签 unit-testing testing dependency-injection ioc-container xunit

我有一个带有需要 IService 的构造函数的测试类。

public class ConsumerTests
{
    private readonly IService _service;
    public ConsumerTests(IService servie)
    {
      _service = service;
    }

    [Fact]
    public void Should_()
    {
       //use _service
    }
}

我想插入我选择的 DI 容器来构建测试类

xUnit 可以吗?

最佳答案

是的,使用 Xunit.DependencyInjection 是可能的

Install-Package Xunit.DependencyInjection

你可以注入(inject)你的服务

[assembly: TestFramework("Your.Test.Project.Startup", "AssemblyName")]
    
namespace Your.Test.Project
{
    public class Startup : DependencyInjectionTestFramework
    {
        public Startup(IMessageSink messageSink) : base(messageSink) { }
    
        protected override void ConfigureServices(IServiceCollection services)
        {
            services.AddTransient<IDependency, DependencyClass>();
        }
    }
}

https://github.com/pengweiqhca/Xunit.DependencyInjection

关于unit-testing - 是否可以在 xUnit 中使用依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131219/

相关文章:

java - 无法使用mockito对该方法中引发的异常进行单元测试

c# - Rhino Mocks,设置 stub 属性后如何执行操作

python - 如何从unittest框架中的另一个测试调用测试方法?

Scalatest:如果两个匹配器之一匹配,则测试有效

java - JUnit + DbUnit : Switch database connection between development and testing environments

ruby-on-rails - 在 Rails 应用程序中生成所有电子邮件的样本版本

javascript - Angular 2 - 服务 - 来自另一个服务的依赖注入(inject)

python - 如何测试设置和检查依赖于未经测试的方法的方法?

design-patterns - 无法结合 Factory/DI

c# - C# 或其他语言中的 Scala 风格抽象模块?