我可以指示AutoFixture還填寫私人財產,其中註明了所有類的特定屬性,例如Ninject.Inject
?源似乎只掃描公共屬性:1。這個問題提供了一個專用MyClass
與私人setter,但不是私人財產或所有類的解決方案:2。AutoFixture和私人財產
我使用Moq來模擬服務,最後我想用這些模擬來填充屬性。如果我公開MyService依賴關係爲public
,以下設置工作正常。
一些示例代碼:
public class MyController {
[Inject]
private IMyService MyService { get; set; }
public void AMethodUsingMyService() {
MyService.DoSomething();
// ...
}
// ...
}
public class MyService : IMyService {
public void DoSomething()
{
// ...
}
// ...
}
public class MyControllerTest {
[Theory]
[AutoMoqData]
public void MyTest(MyController controller) {
controller.AMethodUsingMyService();
}
}
NB Ninject 2或更高版本不支持注入'私人'(它不應該包含在'馬克的答案中)。真的不這樣做 –
我使用的版本是3.0.1.10,只要你指示Ninject注入它們('InjectNonPublic'),注入'private's就可以正常工作。我同意馬克的回答! – Jani
該死的曾經以爲這個選項也在V2 reimpl中死了,但我立場糾正。這意味着這些文檔是錯誤的(它說,在我上次查看並在兩年前使事情保持一致時,許多地方的V2注入了私有化)。可悲的是,我無法激勵自己在wiki中解決這些問題 - 希望其他人能夠解決這些問題。 –