我正在尝试使用xUnit框架在C# .Net Core2.1函数应用程序中编写单元测试,其中类变量通过Autofac依赖项注入进行初始化。
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,但无法让它工作:
private readonly Mock<IDependencyResolver> dependencyResolverMock;
[Fact]
public void Test1()
{
dependencyResolverMock.Setup(x => x.Resolve<It.IsAny<ISampleLoggingStartup>>().Configure());发布于 2020-07-16 04:35:22
在测试构造函数中使用以下代码对我来说效果很好:
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>());
}https://stackoverflow.com/questions/60235029
复制相似问题