我似乎有問題,我有一個類(LoginService),它在構造函數中接受一個IUser。這是爲了執行集成測試而不是單元測試,因此我不想MOCK這些,我已經進行了一些單元測試,並且他們使用Moq與夾具一起工作得很好。AutoFixture:無法創建一個實例,可能沒有公共構造函數
設置我的燈具: -
var fixture = new Fixture();
然後,我希望能夠凍結一個版本的IUSER的,我曾嘗試以下,但我無法得到它的工作,它抱怨說,它不能創建實例,可能是由於沒有構造函數。
var user = fixture.Freeze<IUser>();
所以我設法得到它的工作做了以下
IUser user = new User(); // Create my IUser manually
fixture.Inject(user);
,最後創建SUT果然實例被注入。
var sut = fixture.Create<LoginService>();
所以我這樣做是正確的嗎?我不能使用Freeze,我應該繼續手動創建我的IUser並將其注入到夾具中?
期待任何幫助或信息
我當然可以採取autofixture的方程,但我認爲它即使不嘲笑也派上用場,即我可以做var user = new User(); var sut = new LoginService(user); – Martin