C# 如何使用Moq.mock或Rhino.mock模拟objoutlookaplication.Session.Stores
我正在使用c代码开发Outlook Addin。我正在为下面列出的方法编写一个单元测试用例。我一度陷入困境 有人能帮我为下面列出的方法编写一个单元测试用例吗 示例代码:C# 如何使用Moq.mock或Rhino.mock模拟objoutlookaplication.Session.Stores,c#,moq,outlook-addin,rhino-mocks,C#,Moq,Outlook Addin,Rhino Mocks,我正在使用c代码开发Outlook Addin。我正在为下面列出的方法编写一个单元测试用例。我一度陷入困境 有人能帮我为下面列出的方法编写一个单元测试用例吗 示例代码: Public bool IsMyPstStoreIsAvailable(string strStoreID) { foreach (Store objStore in ObjOutlookApplication.Session.Stores) { if(objStore.StoreID == strStor
Public bool IsMyPstStoreIsAvailable(string strStoreID)
{
foreach (Store objStore in ObjOutlookApplication.Session.Stores)
{
if(objStore.StoreID == strStoreID)
return true;
}
return false;
}
在这里,我想模拟objoutlookaplication.Session.Stores,并尝试覆盖foreach的行覆盖率
我怎样才能模仿这个物体
我试过使用Moq.Mock或Rhino.Mock。但我没有从中得到任何适当的解决办法
单元测试用例代码示例:
[TestMethod]
public void T0005_IsMyPstStoreIsAvailableMoq()
{
Moq.Mock<Outlook.Application> objMockApplication = null;
Moq.Mock<Outlook.NameSpace> objMockNameSpace = null;
Moq.Mock<Outlook.Stores> objMockStores = null;
Moq.Mock<Outlook.Store> objMockStore = null;
try
{
objMockApplication = new Moq.Mock<Outlook.Application>();
objMockStores = new Moq.Mock<Outlook.Stores>();
objMockStore = new Moq.Mock<Outlook.Store>();
objMockNameSpace = new Moq.Mock<Outlook.NameSpace>();
objMockFrmOurlookWatcher.Setup(x => x.GetApplicationObject()).Returns(objMockApplication.Object);
objMockApplication.Setup(x => x.Session).Returns(objMockNameSpace.Object);
objMockNameSpace.Setup(x => x.Stores).Returns(objMockStores.Object);
objIFrmOurlookWatcher.IsMyPstStoreIsAvailable("ABCD StoreID");
}
catch (System.Exception ex)
{
Assert.Fail("IsMyPstStoreIsAvailableMoq" + ex.Message.ToString());
}
}
[TestMethod]
公共无效T0005_IsMyPstStoreIsAvailableMoq()
{
Moq.Mock objMockApplication=null;
Moq.Mock objMockNameSpace=null;
Moq.Mock objMockStores=null;
Moq.Mock objMockStore=null;
尝试
{
objMockApplication=new Moq.Mock();
objMockStores=new Moq.Mock();
objMockStore=new Moq.Mock();
objMockNameSpace=new Moq.Mock();
Setup(x=>x.GetApplicationObject()).Returns(objMockApplication.Object);
Setup(x=>x.Session).Returns(objMockNameSpace.Object);
Setup(x=>x.Stores).Returns(objMockStores.Object);
objIFrmOurlookWatcher.ismypststoreisavable(“ABCD StoreID”);
}
catch(System.Exception-ex)
{
Assert.Fail(“IsMyPstStoreIsAvailableMoq”+ex.Message.ToString());
}
}
谢谢当前状态下的问题不完整。阅读问题,然后提供一个可以用来重现问题的答案,以便更好地理解所问的问题。无关提示:你不需要围绕测试的内容进行
try…catch{Assert.Fail}
。任何未捕获的异常都将导致测试失败,并提供比代码提供的信息更好的信息。