在類實例化和TestDriven.Net(v4.0.3478)或XUnit(v2.2.0),RhinoMocks(v3.6.1)和structuremap.automocking( v4.0.0.315)。XUnit,RhinoMocks或TestDriven.Net問題
鑑於此代碼: - 在特定的測試方法或特定類定義>Run Test(s)
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; }
}
所有測試正常,當我右鍵單擊運行。
當我右鍵單擊項目,包含測試的文件夾或上面類的名稱空間定義時,測試失敗。
錯誤是NullReferenceException
,當做斷言時,它似乎是存根的數據。這是隨機的,有時Tests1.passing_test
失敗,有時Tests2.passing_test
失敗。從來沒有。
認爲它必須與RhinoAutoMocker
和/或MockRepository
不在測試夾具之間重置?
UPDATE:簡化了代碼來說明問題,也給代碼完成後,使用NUnit [Test]
代替的xUnit [Fact]
屬性的作品,一切都表現爲正常。