我无法弄清楚如何使用Moq在C#中设置索引器.Moq文档很薄弱,我已经做了很多搜索......我想做的事情在如何设置索引属性的解决方案中类似:
var someClass = new Mock<ISomeClass>();
someClass.SetupSet(o => o.SomeIndexedProperty[3] = 25);
Run Code Online (Sandbox Code Playgroud)
我想修改上面的内容以适用于任何索引和任何值,所以我可以这样做:
someClass.Object.SomeIndexedProperty[1] = 5;
Run Code Online (Sandbox Code Playgroud)
目前我有以下内容,它对索引属性getter非常有用,但是如果我设置了值,Moq会忽略它:
var someValues = new int[] { 10, 20, 30, 40 };
var someClass = new Mock<ISomeClass>();
someClass.Setup(o => o.SomeIndexedProperty[It.IsAny<int>()])
.Returns<int>(index => someValues[index]);
// Moq doesn't set the value below, so the Assert fails!
someClass.Object.SomeIndexedProperty[3] = 25;
Assert.AreEqual(25, someClass.Object.SomeIndexedProperty[3]);
Run Code Online (Sandbox Code Playgroud) 嗨,我最近开始尝试python目前阅读"像计算机科学家一样思考:学习python v2nd版本"我一直在使用doctest遇到一些麻烦.我使用windows 7机器和带有pydev的Eclipse IDE.
我的问题是,当我运行下面的脚本时,我得到以下错误.所述脚本位于错误消息下方
Traceback (most recent call last):
File "C:\Users\shaytac\PythonProjects\test.py", line 21, in <module>
doctest.testmod()
File "C:\Python26\lib\doctest.py", line 1829, in testmod
for test in finder.find(m, name, globs=globs, extraglobs=extraglobs):
File "C:\Python26\lib\doctest.py", line 852, in find
self._find(tests, obj, name, module, source_lines, globs, {})
File "C:\Python26\lib\doctest.py", line 906, in _find
globs, seen)
File "C:\Python26\lib\doctest.py", line 894, in _find
test = self._get_test(obj, name, module, globs, source_lines)
File "C:\Python26\lib\doctest.py", line 978, in _get_test
filename, lineno)
File "C:\Python26\lib\doctest.py", line 597, in get_doctest
return DocTest(self.get_examples(string, …Run Code Online (Sandbox Code Playgroud) 我最近一直在阅读有关不可变字符串的原因为什么字符串在Java和.NET中不可变?而为什么.NET字符串是不可改变的?以及为什么D选择不可变字符串的一些东西.似乎有很多好处.
更不用说大多数新语言都有不可变的字符串,D2.0,Java,C#,Python等.
C++会从不可变字符串中受益吗?
是否有可能在c ++(或c ++ 0x)中实现具有所有这些优点的不可变字符串类?
更新:
在不可变字符串const_string和fix_str上有两次尝试.五年内都没有更新.它们甚至被使用过吗?为什么const_string没有进入boost?
假设我有一个getUser带有两个参数的查询- userName和password.我想要一个如下所示的mapper方法:
public UserBean getUser(String userName, String password);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以实现这样的目标吗?或者也许我应该传递我的mapper方法参数图(以及我的xml映射器中的一些parameterMap)?
public UserBean getUser(Map<String, Object> paramMap);
Run Code Online (Sandbox Code Playgroud)
我期待着一些提示和解释.
我想使用登录的Windows用户的凭据来验证使用NTLM到Exchange服务器的SMTP连接.
我知道python-ntlm模块和两个 为SMTP启用NTLM身份验证的补丁,但我想使用当前用户的安全令牌而不必提供用户名和密码.
与使用Python和urllib2的Windows身份验证非常相似的问题.
我正在使用LINQ to XML来创建Excel XML文件.我想在单元格中包含换行符.Excel使用 文字表示新行.如果我尝试使用XText添加它:
XText newlineElement = new XText( "Foo Bar" );
Run Code Online (Sandbox Code Playgroud)
我明白了:
Foo&#10;Bar
在Excel中显示为:
Foo Bar
有没有办法在
不做的情况下写入XML文件
String.Replace( "&#10;", " " )
Run Code Online (Sandbox Code Playgroud)
在生成的文件文本?
编辑这是一个代码片段,显示我如何为Excel文档创建一行.因为它有点凌乱,我正在避开它.:)让我知道更多的代码是否会有所帮助,或者这是否会增加更多的混淆.
在该示例中,newlineElement上述内容由代码示例中的唯一XText表示.
const string CELL = "{urn:schemas-microsoft-com:office:spreadsheet}Cell";
const string DATA = "{urn:schemas-microsoft-com:office:spreadsheet}Data";
const string STYLE = "{urn:schemas-microsoft-com:office:spreadsheet}StyleID";
const string TYPE= "{urn:schemas-microsoft-com:office:spreadsheet}Type";
const string HEIGHT = "{urn:schemas-microsoft-com:office:spreadsheet}Height";
const string ROW = "{urn:schemas-microsoft-com:office:spreadsheet}Row";
Run Code Online (Sandbox Code Playgroud)
...
XElement rowElement = new XElement( Row,
new XElement( CELL,
new XAttribute( STYLE, "s0" ) ),
new XElement( CELL, …Run Code Online (Sandbox Code Playgroud) 我想导航到这一点下的成员声明.使用etags *.php然后导航创建标记文件find-tag是有限的,因为它似乎没有任何调用类的意义.因此,如果两个类具有相同名称的方法,则必须循环.
语义的semantic-ia-fast-jump功能,另一个潜在的选择,对于PHP方法似乎根本不起作用.
我在TortoiseSvn中进行合并,它修改了一些文件,删除了一些文件,并添加了一些文件.接下来我正在创建一个Create Patch来创建一个包含这些更改的补丁文件.问题是生成的补丁文件仅包含修改和删除,而不包括添加.
我发现了一种解决方法.如果我恢复添加,然后在TortoiseSVN中显式添加这些文件,然后执行修补程序,它会选择所有内容,包括添加.
有没有办法避免这种解决方法?