Я пытаюсь написать интеграционный тест для следующего класса, но я застрял с получением IHostingEnvironment в моем тесте.Я предполагаю, что я должен быть в состоянии получить IHostingEnvironment от TestServer, но не игра в кости.Я что-то упустил?Является ли этот сценарий более подходящим для модульного теста, чем интеграционного теста?
Фактический класс
public class PasswordResetMessage : IMessage
{
private readonly PasswordReset passwordReset;
private readonly IHostingEnvironment iHostingEnvironment;
public PasswordResetMessage(IHostingEnvironment iHostingEnvironment, PasswordReset passwordReset)
{
this.passwordReset = passwordReset;
this.iHostingEnvironment=iHostingEnvironment;
}
public string Get()
{
var stringBuilder = new StringBuilder();
var pathToFile = Path.Combine(iHostingEnvironment.ContentRootPath, "EmailTemplates", "password_reset.txt");
using (var streamReader = File.OpenText(pathToFile))
{
stringBuilder.Append(streamReader.ReadToEnd());
}
return stringBuilder.Replace("{{ActionURL}}", passwordReset.ActionURL).ToString();
}
}
Интеграционный тест:
public class PasswordResetMessageTest
{
private PasswordResetMessage passwordResetMessage;
private readonly TestServer testServer;
public PasswordResetMessageTest()
{
testServer = new TestServer(new WebHostBuilder().UseStartup<Startup>());
passwordResetMessage = new PasswordResetMessage(**<IDon'tKnowWhatToPassHere>**, new PasswordReset());
}
[Fact]
public void Get()
{
var message=passwordResetMessage.Get();
Assert.Contains(message, "");
}
}