클래스 인스턴스와 TestDriven.Net (v4.0.3478) 또는 XUnit (v2.2.0), RhinoMocks (v3.6.1) 및 structuremap.automocking과 관련된 몇 가지 문제가 있습니다. v4.0.0.315). 이 코드를 감안할 때XUnit, RhinoMocks 또는 TestDriven.Net 문제
:
public class Tests1
{
[Fact]
public void passing_test()
{
var mocker = new RhinoAutoMocker<Subject>();
mocker.Get<IData>().Stub(x => x.Strings).Return(new List<string> {""});
var result = mocker.ClassUnderTest.GetStrings();
result.Count().ShouldEqual(1);
}
}
public class Tests2
{
[Fact]
public void passing_test()
{
var mocker = new RhinoAutoMocker<Subject>();
mocker.Get<IData>().Stub(x => x.Strings).Return(new List<string> {""});
var result = mocker.ClassUnderTest.GetStrings();
result.Count().ShouldEqual(1);
}
}
public class Subject
{
private readonly IData _data;
public Subject(IData data)
{
_data = data;
}
public IEnumerable<string> GetStrings()
{
return _data.Strings;
}
}
public interface IData
{
IEnumerable<string> Strings { get; set; }
}
모든 테스트는 잘 나가 마우스 오른쪽 버튼을 클릭하면 실행 ->Run Test(s)
특정 시험 방법 또는 특정 클래스 정의에.
프로젝트, 위의 클래스의 네임 스페이스 정의 또는 테스트가 포함 된 폴더를 마우스 오른쪽 버튼으로 클릭하면 테스트가 실패합니다.
오류는 NullReferenceException
이며, 어설 션 할 때 스텁의 데이터 인 것 같습니다. 무작위, 때로는 Tests1.passing_test
이 실패하고 때로는 Tests2.passing_test
이 실패합니다. 둘 다 결코.
RhinoAutoMocker
및/또는 MockRepository
은 테스트 픽스처간에 재설정되지 않아야한다고 생각하십니까?
업데이트 : XUnit [Fact]
속성 대신 NUnit [Test]
을 사용하여 문제를 표시하는 코드를 간소화하고 모든 것이 정상적으로 작동합니다.