2016-05-17 91 views
2

我在CRM 2011中試圖找出用戶是否曾在特定情況下工作過。我如何從MS CRM 2011中的WhoAmIRequest獲取用戶角色詳細信息

我試圖寫單元測試,以獲得一個用戶ID如下

var userid = ((WhoAmIResponse)_orgservice.Execute(new WhoAmIRequest())).UserId; 

,然後試圖讓用戶詳細信息如下:

var systemuser = _service.Retrieve(
    "systemuser", 
    user.Id, 
    new ColumnSet(true) 
); 

我的用戶存根如下:

var id = new Guid("2974f072-e02a-45e8-b060-4811f24283c0"); 
SystemUser user = new SystemUser 
{ 
    FirstName = "FirstName_Test", 
    LastName = "LastName_Test", 
    Id = id 
}; 

return user; 

運行測試時,我看到不同的UserId,而不是我設置的那個。我不確定這裏會發生什麼。任何幫助將不勝感激。

謝謝

+3

目前還不清楚你在問什麼。你是在嘲笑'_service'對象還是直接調用CRM?測試用例是什麼?也許你可以發佈一組更完整的代碼段,以便我們可以嘗試重新創建問題。 – Nicknow

+0

是的,我在嘲笑'IOrganisationService',測試案例是指定的案例評論只有在分配給他/她的情況下才可分配,否則應該禁用評論鏈接,我正在撰寫的方法是採用Review實體和返回布爾值,對不起,我不提供代碼。 – jks

回答

0

你嘗試FakeXrmEasy進行單元測試?無需存根或嘲笑任何東西......它已經爲您完成了。

這對查詢特別有用,因爲它們可能有許多不同的連接,過濾器等等,使用scracth自己的模擬很難複製。示例here

對於上述示例,還有一個WhoAmIRequest的實現,它將返回您在上下文的CallerId屬性中設置的用戶。

Here's一個例子。

+0

只需提醒一下,如果您要推薦您附加的軟件/產品/服務,您應該在答案中提及它 - 只是讓人們知道您不是一個沒有偏見的作家。 – Nicknow

相關問題