我正在編寫單元測試,並且已經實現了一個很好的存儲庫模式/ moq,以允許我在不使用「真實」數據的情況下測試我的函數。到目前爲止好..但是..存儲庫接口中的單元測試函數 - ASP.net MVC3&Moq
在我的倉庫界面「帖子」 IPostRepository
我有一個函數: Post getPostByID(int id);
我希望能夠從我的測試類測試這一點,但不能工作如何。
到目前爲止,我使用這個模式來我的測試:
[SetUp]
public void Setup()
{
mock = new Mock<IPostRepository>();
}
[Test]
public void someTest()
{
populate(10); //This populates the mock with 10 fake entries
//do test here
}
在我的功能「someTest」我希望能夠調用/測試功能GetPostById
。我可以使用mock.object.getpostbyid
找到該功能,但「對象」爲空。
任何幫助,將不勝感激:)
iPostRepository:
public interface IPostRepository
{
IQueryable<Post> Posts {get;}
void SavePost(Post post);
Post getPostByID(int id);
}
如何填充(10)'創建數據?在mock的''''屬性上獲得一個空引用異常通常意味着該模擬沒有被實例化,但是看起來你正在'[SetUp]'中做這件事。可能值得確保'[SetUp]'按預期運行。 – ataddeini 2012-04-10 11:26:01
哦,我想我現在明白了 - 我讀「對象」爲空,我認爲你的意思是Mock的'object'屬性。我認爲Marnix有你的答案 – ataddeini 2012-04-10 11:27:44
@ataddeini是的,填充只是迭代,增加了模擬,以節省我在每個測試案例中寫同樣的10行! – JustAnotherDeveloper 2012-04-10 12:01:39