我正在尝试使用Moq 3.x,它运行得非常好.但是,我有一个问题,我无法弄清楚如何解决.特定
public interface ITestSpec
{
bool Run(Action<string, string> onIncorrectResponse);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下方法:
var passingTestSpec = new Mock<ITestSpec>();
passingTestSpec
.Setup(m => m.Run(null))
.Returns(true);
Action<string, string> fakeAction =
(expected, actual) => { throw new Exception("Should not run"); };
Assert.IsTrue(passingTestSpec.Object.Run(fakeAction));
Run Code Online (Sandbox Code Playgroud)
我的问题是对passTestSpec.Object.Run(......某些动作......)的任何调用都返回false.似乎Moq库试图将操作与我在Setup()调用中传递给Run()的参数匹配,并且失败.实际上我在Run()调用中放了什么动作并不重要......它仍然返回false.
有任何想法吗?
[编辑]我刚刚发现了一些东西; 如果我用安装线替换
.Setup(m => m.Run(fakeAction))
Run Code Online (Sandbox Code Playgroud)
测试通过.但是,我不知道将调用.Run()方法的操作,因此这不是一个解决方案.有谁知道It.IsAny等同于行动?
我需要的只是strcpy().
我想看看缓冲区(字节数组)的前三个字节是否为"JMX"字符串.
这是我到目前为止所做的:
char * ddj;
strcpy( ddj, buffer ); //buffer is BYTE[]
if ( strcmp( "JMX", ddj ) == 0 ) //check first three chars are "JMX"
{
buffer += 20; //increase the index with 20
size -= 20; //int
}
Run Code Online (Sandbox Code Playgroud)
我在strcmp()行遇到异常.问题是什么?
我希望我用C#写这个:(
我已经在python中编写了一个实现__str__(self)但是当我在包含该类实例的列表上使用print时,我只获得了默认输出<__main__.DSequence instance at 0x4b8c10>.我需要实现另一个神奇的功能才能使其工作,或者我是否必须编写自定义打印功能?
这是班级:
class DSequence:
def __init__(self, sid, seq):
"""Sequence object for a dummy dna string"""
self.sid = sid
self.seq = seq
def __iter__(self):
return self
def __str__(self):
return '[' + str(self.sid) + '] -> [' + str(self.seq) + ']'
def next(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.seq[self.index]
Run Code Online (Sandbox Code Playgroud) 我正在尝试在ASP.NET MVC应用程序中构建通用网格视图.
让我解释一些代码:
public interface ITrustGrid<T>
{
IPagedList<T> Elements { get; set; }
IList<IColumn<T>> Columns { get; set; }
IList<string> Headers { get; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个类的接口,允许我在控制器中设置列和表达式.
我将实现传递给部分视图,如下所示:
<% Html.RenderPartial("SimpleTrustGridViewer", ViewData["employeeGrid"] as TrustGrid<EmployeeInfoDTO>); %>
Run Code Online (Sandbox Code Playgroud)
问题是我无法弄清楚如何使局部视图呈现网格通用.
换句话说,我想转此:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITrustGrid<EmployeeInfoDTO>>" %>
Run Code Online (Sandbox Code Playgroud)
进入这样的事情:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITrustGrid<T>>" %>
Run Code Online (Sandbox Code Playgroud)
=>如何以最简单的方式使我的部分视图通用?
编辑:
我通过使用具有公共TrustGrid GetTrustGrid()方法的TrustGridBuilder解决了这个问题,该方法返回非通用的TrustGrid.TrustGrid包含字符串而不是linq的东西.所以我在GetTrustGrid()方法中执行linq并将字符串放在TrustGrid对象中.
感谢大家帮助我走上正轨.
是否有正则表达式等价的搜索和修改树结构?我正在寻找简洁的迷你语言(如perl regex).
这是一个可以澄清我在寻找什么的例子.
<root>
<node name="1">
subtrees ....
</node>
<node name="2">
<node name="2.1">
data
</node>
other subtrees...
</node>
</root>
Run Code Online (Sandbox Code Playgroud)
在上面的树上可能的操作是"将节点2.1处的子树移动到节点1处的子树中".操作的结果可能看起来像..
<root>
<node name="1">
subtrees ....
<node name="2.1">
data
</node>
</node>
<node name="2">
other subtrees...
</node>
</root>
Run Code Online (Sandbox Code Playgroud)
搜索和替换操作,例如查找具有至少2个子节点的所有节点,查找数据以"a"开头的所有节点,如果子树至少有2个其他兄弟节点等,则将其替换为"b",等等.
对于字符串,其中唯一的维度是跨越字符串的长度,我们可以使用正则表达式执行上述操作中的许多操作(或其1D等价物).我想知道是否有树的等价物.(而不是单个正则表达式,您可能需要编写一组转换规则,但这没关系).
我想知道是否有一些简单的迷你语言(不是正则表达式,而是通过库等可以访问正则表达式等).执行这些操作?优选地,作为python库.
我有一个std :: vector <int>,我想删除第n个元素.我怎么做?
std::vector<int> vec;
vec.push_back(6);
vec.push_back(-17);
vec.push_back(12);
vec.erase(???);
Run Code Online (Sandbox Code Playgroud) 我在自定义表格单元格中有自定义视图.每次更改自定义视图上的特定属性时,我都会调用[self setNeedsDisplay]该视图重绘视图- (void)drawRect:(CGRect)rect.该属性在表视图委托中设置tableView:cellForRowAtIndexPath:.但是当表格视图大于屏幕并且必须重复使用单元格时,drawRect每次都不会调用setNeedsDisplay.特别是当我快速拨动桌子时.慢滚动工作正常.这导致第一个和最后一个单元格中的信息通常不正确.
在日志中我可以看到,通常情况下,每次调用setNeedsDisplay有一个电话drawRect,但是当我滚动表视图很快有更多的呼吁setNeedsDisplay比drawRect.当然,这里应该有一对一的比例.
我在普通的UIView中使用相同的自定义视图,并且每次调用时它都会完美地重绘setNeedsDisplay.问题似乎与表视图和重用单元格隔离.
有谁知道这里发生了什么?有没有其他方法可以强制自定义视图重绘自己?
我需要将一些遗留的32位代码(我没有源代码)集成到一个项目中,以便可以从64位.NET程序集中调用它.原始代码在DLL中实现为32位COM对象.Windows不允许从64位到32位对象的直接调用,所以我正在寻找如何处理这种情况的灵感.
如何从64位.NET程序集访问传统的32位COM对象?
更新:我们发现COM组件本身就是一些ANSI C的包装器,我们为它提供了原始源代码.我们能够在Visual Studio中将其编译为本机64位dll,并将其导入.NET - 抱歉移动球门柱!
我正在尝试使用 RenderMonkey 来设计一个使用 Alpha 透明度的 GLSL 着色器,并且 RenderState 编辑器不使用我在 OpenGL 中使用的相同术语。谁能建议如何配置它以实现简单的 Alpha 透明度?
注意:我在下面的UPDATE答案中添加了我的新解决方案.
我尝试重新创建我们在iPhone/iPod touch上的Mobile Safari选项卡中看到的效果.
基本上,它是一个UIScrollView,它包含4个可重用的UIView(就像环形缓冲区一样),并且水平滚动.滚动时,UIView的不透明度将与偏移无缝淡入/淡出.
目前,我做了所有肮脏的工作- (void)scrollViewDidScroll:(UIScrollView *)scrollView.例如从UIScrollView获取contentOffset,确定pageingation,计算contentOffset和每个UIView位置之间的差值,并在scrollViewDidScroll:调用时确定/设置每个UIView的alpha值.
它工作正常,性能还可以,一切运行顺利,但唯一的问题是计算太多.
我试过的UIView的beginAnimations:和commitAnimations:,但它是无用scrollViewDidScroll:的,因为1)新的阿尔法值还是要由我自己来计算,和2)scrollViewDidScroll:滚动时不停叫,这是毫无意义的,在这里做动画.有没有办法用Core Animation重写这个部分?因此,我不必自己对每个UIView的alpha值进行数学计算,相反,我可以将整个作品留给Core Animation.