저는 AutoFixture를 사용하여 단위 테스트에 Html 도우미를 시도하고 있습니다. 아래는 내 SUT입니다단위 자동 완성을 사용하여 HTML 도우미를 테스트하십시오.
위에서 볼 수 있듯이 테이블 태그와 ID가 첨부 된 MVC HTML 문자열 만 반환됩니다. AutoFixture와
단위 테스트를 (예는 단위 테스트 결과 아래 참조) :
[Fact]
public void SampleTableHtmlHelper_WhenKeyExistWithinHttpContext_ReturnsExpectedHtml()
{
var fixture = new Fixture();
//Arrange
fixture.Inject<HttpContextBase>(new FakeHttpContext());
var httpContext = fixture.CreateAnonymous<HttpContextBase>();
fixture.Inject<ViewContext>(new ViewContext());
var vc = fixture.CreateAnonymous<ViewContext>();
vc.HttpContext = httpContext;
vc.HttpContext.Items.Add(Keys.SomeKey, "foo");
fixture.Inject<IViewDataContainer>(new FakeViewDataContainer());
var htmlHelper = fixture.CreateAnonymous<HtmlHelper>();
var sampleModel = fixture.CreateAnonymous<SampleModel>();
//Act
var result = SampleHelpers.SampleTable(htmlHelper, sampleModel, null).ToString();
//Assert
Assert.Equal("<table id=\"foo\"></table>", result);
}
이 FakeHttpContext 및 FakeViewDataContainer는 HttpContextBase 및 IViewDataContainer 단지 가짜 구현입니다.
이 테스트는 예상 결과를 전달하여 반환합니다. 그러나 여기서는 Autofixture를 올바르게 사용하고 있는지 잘 모르겠습니다. 이 Unit Test 내에서 AutoFixture를 사용하는 더 좋은 방법이 있습니까?
아주 좋습니다. Mark 대단히 감사합니다. – Spock