模拟对WCF服务的调用时,我收到以下错误:
方法'ICustomerEntities.GetCustomerFromPhoneNumber("01234123123");' 需要返回值或抛出异常.
我用Google搜索并在这里搜索 - 我能找到的是我需要重新排序各种电话等,但这在我的情况下似乎没有意义吗?也许有人可以向我指出它确实存在吗?
我的测试设置看起来像这样
_entities = MockRepository.GenerateStrictMock<ICustomerEntities>();
Run Code Online (Sandbox Code Playgroud)
并且测试方法在第三行上失败,设置 result2
_entities.Expect(ip => ip.GetCustomerFromPhoneNumber("01234123123"));
var test = MockRepository.GenerateMock<ICustomerEntities>(_factory);
var result2 = _entities.GetCustomerFromPhoneNumber("01234123123");
var result = test.GetAllCustomersWithAGivenPhoneNumber("01234123123");
Assert.AreEqual(result,result2);
Run Code Online (Sandbox Code Playgroud)
原始调用试图模拟这个(在一个名为的方法中GetAllCustomersWithAGivenPhoneNumber):
using (var entities = _factory.CreateEntities())
{
var customer = entities.GetCustomerFromPhoneNumber(telephoneNumber);
}
Run Code Online (Sandbox Code Playgroud) 我的数据模型如下:
<Club>
<Captain>
<Name></Name>
<DateOfBirth>15-01-1985</DateOfBirth>
</Captain>
<PlayingStaff>
<Player>
<DateOfBirth>14-01-1993</DateOfBirth>
</Player>
<Player>
<DateOfBirth>07-12-1975</DateOfBirth>
</Player>
<Player>
<DateOfBirth>11-11-1991</DateOfBirth>
</Player>
</PlayingStaff>
</Club>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用这里给出的答案:XSLT:获取最新日期,但它并没有给我任何价值.
我正试图让最年轻的玩家转到外部功能.
我在Biztalk中这样做,所以我必须坚持使用XSLT1
到目前为止我的工作如下:
<xsl:variable name="youngestPlayer">
<xsl:for-each select="$ClubRoot/*[local-name()='PlayingStaff']/*[local-name()='Player']">
<xsl:sort select="./*[local-name()='DateOfBirth']" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="DateOfBirth"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="IsYoungestPlayerUnderAgeLimit" select="externalfunctionreturningboolean">
<xsl:element name="blahhh"><xsl:value-of select="$IsYoungestPlayerUnderAgeLimit"/></xsl:element>
<xsl:element name="blahhh"><xsl:value-of select="$youngestPlayer"/></xsl:element>
Run Code Online (Sandbox Code Playgroud)
这是一个大模板的一部分 - 我无法真正改变这一点,但ClubRoot的价值是" <xsl:variable name="ClubRoot" select="/*[1]"/>"确保我可以读取它的子节点.
我总是得到
<blahhh>false</blahhh>
<blahhh/>
Run Code Online (Sandbox Code Playgroud)
作为我的调试值...所以我没有拿起我期望的值
有人可以突出我出错的地方吗?
从上面的数据中,我期望在我的youngestPlayer变量中得到14-01-1993的值.但它的空白.
我希望更多地了解LINQ并使用它,所以在这里进行一些自我开发工作......
我有一个对象如下:
public class Player(){
public string Name{get;set;}
public Club currentClub{get;set;}
public IEnumerable<Club> previousClubs{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
现在,给出一个球员名单,我想选择以前为各种俱乐部效力的球员,我可以通过嵌套的几个foreach声明轻松地做到这一点 - 但我想用Linq来做. .
我试过这个,但没有从中返回:
var prevClubs =
from player in players
from clubOriginal in player.previousClubs
from clubSecond in player.previousClubs
from clubThird in player.previousClubs
where clubOriginal.ID == 1
where clubSecond.ID == 2
where clubThird.ID == 3
select new HistoryOfPlayer{
firstClub == clubOriginal.Name,
secondClub == clubSecond.Name,
thirdClub == clubThird.Name
}
Run Code Online (Sandbox Code Playgroud)
我出错的地方有什么帮助吗?数据肯定是存在的,因为当我有一个环绕循环球员的环绕着球员的foreach循环并且我返回所有为俱乐部1,2和3效力的球员的集合有数据......
实际上它应该返回一个HistoryOfPlayer对象的几个实例,所有实例都包含相同3个俱乐部的名称(假设它们与ID相关联) - 正如我所说,它有点自学,所以试图将它应用于运动所以它我的脑袋里有点!!
有人可以帮忙吗?