如果我理解你的問題正確地基本上你擔心你的資料庫創建並注射時的測試類實例化,因此在您的測試方法,你不能修改版本庫的狀態,因爲它已經是在你的映射器中,當然,你的映射器不應該公開倉庫的內部。
如果是這樣的話,我認爲你不必擔心,只需修改myMemoryCategoryRepository的狀態並執行映射器的方法即可。您的映射器應該相應地執行操作,因爲您注入的內容是對存儲庫的引用,因此映射器內的對象與您將要修改的對象相同。
Dim myMemoryCategoryRepository As MemoryCategoryRepository = MemoryKernel.Instance.Get(Of MemoryCategoryRepository)()
Dim myCategoryMapper As CategoryMapper = New CategoryMapper(myMemoryCategoryRepository)
<TestMethod()> _
Public Sub GetCategoryStartDate_CategoryStartDateAndContractStartDate_ContractStartDateIsOldestDate()
myMemoryCategoryRepository.AnyFlag = True
myCategoryMapper.Execute()
Assert.AreEqual(expectedValue, myCategoryMapper.Value)
End Sub
@nathan:如果你感到強烈的代碼在後正在而不是在一個單獨的糊箱,你能不能再這麼好心來修復停工了呢? –
把這個回覆到原來的樣子,對不起,如果我沒有得到正確的原文。 –