我已经开始使用吉斯做一个项目的一些依赖注入,主要是因为我需要注入嘲笑(使用JMock的目前)层从单元测试,这使得人工注射非常尴尬了.
我的问题是引入模拟的最佳方法是什么?我目前所拥有的是在单元测试中创建一个满足依赖关系的新模块,并将它们绑定到如下所示的提供者:
public class JMockProvider<T> implements Provider<T> {
private T mock;
public JMockProvider(T mock) {
this.mock = mock;
}
public T get() {
return mock;
}
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中传递mock,因此JMock设置可能如下所示:
final CommunicationQueue queue = context.mock(CommunicationQueue.class);
final TransactionRollBack trans = context.mock(TransactionRollBack.class);
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(CommunicationQueue.class).toProvider(new JMockProvider<QuickBooksCommunicationQueue>(queue));
bind(TransactionRollBack.class).toProvider(new JMockProvider<TransactionRollBack>(trans));
}
});
context.checking(new Expectations() {{
oneOf(queue).retrieve(with(any(int.class)));
will(returnValue(null));
never(trans);
}});
injector.getInstance(RunResponse.class).processResponseImpl(-1);
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?我知道,AtUnit试图解决这个问题,虽然我失去了它是如何自动奇迹般地注入这是本地创建像上面的一个模拟,但是我正在寻找无论是令人信服的理由,AtUnit是正确的答案在这里(其他而不是在不改变测试的情况下改变DI和模拟框架的能力,或者是否有更好的解决方案来手动完成.
这是我的头脑!
我有一个带有几个选项的select元素,但是我不能操作或访问任何选项,因为显然'options'数组不存在.
我在一个更简单的html文档中重新创建了这个问题:(原始项目是ASP MVC)
<html><head><title>test test test</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" >
function checkMenu() {
if( $("#menu").options ) {
$("#message").text("Success!");
}
else {
$("#message").text("Fail :<");
}
}
</script>
</head>
<body>
<select id="menu" name="menu">
<option>qwerty</option>
<option>uiop</option>
<option>asdf</option>
<option>ghjkl</option>
</select>
<a href="#" onclick="checkMenu()">Clicker!</a>
<div id="message">message</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我没有找到任何关于此的信息,任何提示赞赏.
我正在使用MFC进行gui开发,我偶然发现了一个对我正在尝试做的事情有用的函数.该函数是_AfxCompareClassName.但是,它包含在其位于目录"VC/altmfc /文件"afximpl.h" SRC/MFC /afximpl.h".正常的mfc包含在目录"VC/atlmfc/include "中.
现在从我收集的内容中,src/mfc中的文件和函数被认为是私有mfc(根据这个人),我不应该使用它们.为什么?这个功能看起来不错.它会帮助我知道我目前在UI中的位置.
最终我想要做的是在编辑文本字段(编辑控件)时更改转义/返回键行为.我的问题如下:
我虽然得到一些关于私人MFC的信息很好,因为到目前为止似乎没有任何关于私有MFC的信息.
非常感谢,JC
我正在使用SQLite.
假设我有一个sales
有两列的桌子,date
并且count
为了跟踪我在那一天卖了多少杯柠檬水.如果我在某一天没有出售任何柠檬水,我太沮丧了,无法在sales
表格中创建新行.
我想知道在给定日期范围内销售的平均眼镜数量.我可以发出这样的查询:
SELECT AVG(count) FROM sales WHERE date IS BETWEEN '2010-01-04' AND '2010-01-10';
Run Code Online (Sandbox Code Playgroud)
但是,除非该范围内的所有日期都包含在表格中,否则结果将不准确.我需要一些方法告诉SQLite将丢失的行计为零.
我想如果我能加入日期范围的销售表,那将是理想的.这似乎不太可能,因此从日期范围创建表的简单方法可能是下一个最好的方法.我不想修改销售表,这对于柠檬水摊来说似乎很傻,但在现实生活中更有意义.
正如我上面所说的,我正在使用SQLite,所以如果你向我推荐其他数据库,你就没有帮助.也就是说,如果您对其他数据库有更多经验,并认为您的解决方案可以在vanilla SQL中完成,我很乐意听到它.
我接收一个8位十六进制数作为IEEE 754位浮点数,我想打印有关该数字的信息(signbit,expbits,fractbits,normalized,denormalized,infinity,zero,NAN)浮点应该是单个.
我读了一下比特移位,我想这就是我想这样做的原因吗?但是,我并非100%肯定.我知道符号位位于数字的最左侧位置.表示正面或负面.我将它移动多少才能找到每个?我只是继续转移它找到每一个?谁能解释我是如何找到每一个人的?
我会换1来找到标志吗?我会换8来得到指数吗?我会换23来获得压裂吗?
signbit应为零
expbits应该是128
fracbits应该是0x00000000我想......
如果是这样,我如何在转移后测试它?
这就是我到目前为止所拥有的
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
short wordOrder = 0x0100;
int HexNumber;
printf("Hex IEEE - 754\n");
if(wordOrder == 0x0100)
{
printf("\nbyte order: big-endian\n");
}
else
{
printf("byte order: little-endian\n");
}
printf("\n>");
scanf("%x", &HexNumber);
printf("\n%#x",HexNumber);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的输入(scanf)我想要的方式..
>40000000
0x40000000
Run Code Online (Sandbox Code Playgroud)
它正在做什么..
我有一个独立的解决方案(任何其他项目中都没有使用DLL,因此不必担心在其他地方使用的方法).
我正在试图找出一种方法来确定根本没有使用的每个方法/属性.
所以我不能只看私有方法/属性,我还需要检查Public方法和属性.
我过去使用过一个程序来完成这项工作,但仅限于私有方法/属性(它保证的东西不被其他项目使用).即使我记得它是什么,它也无法满足我的需求.
我看过nDepend,但不确定这是否是应用程序中的标准内容,或者我是否需要为它编写自定义CQL语句.
有没有人知道这样做的应用程序,或者如果nDepend可以做到这一点,在nDepend中做多难?
所有,
我有一个MYSQL表,其中包含一个名为timestamp的列.它是DATETIME
数据类型,其值类似于"10/1/2009 3:25:08 PM',"10/1/2009 3:30:05 PM',"10/4/2009 3:40:01 PM',等等..
我想编写一个SQL查询来选择两个日期之间的时间戳字段中的所有值.这样的事情:
select timestamp from tablename where timestamp >= userStartDate and timestamp <= userEndDate
Run Code Online (Sandbox Code Playgroud)
userInput日期没有时间部分.你能为此建议正确的MySQL查询语法吗?谢谢
我有一个UIview,我正在绘制一系列按钮.我想根据用户的选择更改这些按钮.这很好用...但我无法删除已经存在的按钮.
这是一个UIScrollView,其中添加了一个视图作为子视图.这是我需要基本上"清除"/擦拭干净的子视图.在"界面"构建器中,该视图上没有任何内容 我只是在我的代码中添加它.
我一直在环顾四周,看过做subViewcontroller setNeedsDisplay,但没有任何工作.
有任何想法吗?谢谢你的帮助.
我试图将其转换为PHP中可读的UTF8文本
Tel Aviv-Yafo (Hebrew: \u05ea\u05b5\u05bc\u05dc\u05be\u05d0\u05b8\u05d1\u05b4\u05d9\u05d1-\u05d9\u05b8\u05e4\u05d5\u05b9; Arabic: \u062a\u0644 \u0623\u0628\u064a\u0628\u200e, Tall \u02bcAb\u012bb), usually called Tel Aviv
Run Code Online (Sandbox Code Playgroud)
关于如何做的任何想法?
尝试了几种在线方法,但找不到一种方法.
在这种情况下,我有希伯来语和阿拉伯语的unicode