在我们的应用程序中,我使用了Visual Studio 2017 .NET Core 2.我在Web项目Startup.cs
类中实现了依赖注入。我必须在一个新的测试项目中实现相同的功能。如何在测试项目中注入存储库的依赖项?
请参阅以下代码段
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using NLog.Web;
namespace Kpmg.Kdat.Data.Services.Directory.Tests
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseNLog()
.Build();
}
}
上述代码的目的是注入依赖项。在Startup.cs
中,我已经配置了所有依赖项。
使用上面的代码时,我收到以下错误:
错误CS0017程序定义了多个入口点。使用/ main编译以指定包含的类型 切入点。
请帮助解决问题。
答案 0 :(得分:0)
为什么要将上述内容包含在单元测试项目中?一般来说,你不应该这样做。
如果你想要模拟依赖项,你可以在单元测试项目中做这样的事情。
public class TestServiceModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register(ctx =>
{
// return mock implementation of IMyService
}).As<IMyService>()
.SingleInstance();
// register your mock services like above
}
}
并使用喜欢,
[TestInitialize]
public void Initialize()
{
var builder = new ContainerBuilder();
builder.RegisterModule<TestServiceModule>();
}
现在您可以使用IMyService。