我们的团队正在进入TDD并努力进行单元测试的最佳实践.我们的测试代码使用依赖注入.我们的测试通常遵循Arrange-Act-Assert类型的布局,其中我们使用Moq在Arrange部分中模拟依赖关系.
从理论上讲,单元测试应该是一个屏蔽,可以在您重构时保护您.但它正在变成一个阻止我们这样做的锚.我正在努力确定我们的流程失败的地方.
考虑简化的例子:
我预计控制器测试并没有需要进行重构,而是证明给我看我的新控制器实现荣誉的不变的合同.但我们在这里失败了,因为事实并非如此.
每个控制器测试都会动态地模拟存储库接口.他们都需要改变.此外,由于每个测试都不想模拟所有接口和方法,我们发现我们的测试与特定实现相关联,因为它需要知道要模拟的方法.
对于我们拥有的更多测试,重构变得越来越难以实现!或者更准确地说,我们模拟界面的次数越多.
所以我的问题:
是否有偏好在每个测试中使用动态模拟,而不是为每个界面制作可重复使用的手工模拟?
鉴于我的故事,我错过了一些原则还是陷入了常见的陷阱?
谢谢!
我正在考虑一下Appstore的Textsastic,这就是,在虚拟键盘正上方需要一整行所需的键(括号,斜线等),就像是它的延伸一样.
我怎样才能在Android中完成类似的事情?虚拟键盘显示时,至少有一种方法可以拥有一个监听器吗?
我想知道,在一般编程中有什么更好或更快?避免异常或等待异常?
避免例外是:
string a = null;
list = someMethod();
if(list.Length > 0 ){
a = list[0];
}
if(a!=null) ...
Run Code Online (Sandbox Code Playgroud)
或尝试捕捉异常......
string a = null;
try{
a = someMethod()[0];
catch{}
if(a!=null) ...
Run Code Online (Sandbox Code Playgroud) 所以要跟进前一个问题;
由于使用属性和迭代的动态功能
for(var key in array)
Run Code Online (Sandbox Code Playgroud)
我已经相当多地使用它来支持尝试枚举数组并按数字迭代.
仅仅.pushing元素和设置为属性的专业和缺点是什么?
除了明显的识别差异之外.
python中是否存在可以将增加的整数列表转换为范围列表的内容
例如,给定{0,1,2,3,4,7,8,9,11}我想得到{{0,4},{7,9},{11,11}}.
我可以写一个程序来做这个,但想知道python中是否有内置函数
Google代码用于跟踪GWT等项目的问题跟踪系统是什么http://code.google.com/p/google-web-toolkit/issues/list Chromium http://code.google.com/p/chromium/issues/list等?
我想知道这个bug跟踪软件是否是一个可供下载的开源项目.
我从队友那里收到了一个新的SOAP服务客户端JAR,我正忙着将它集成到我的应用程序中.我已将JAR放入适当的路径,覆盖以前的版本.我刷新了我的工作区,执行了Clean和Build,但......
...我无法通过intellisense看到JAR中的任何类,即使我从JAR使用的代码将正确编译和执行.此外,Eclipse仍在尝试使用以前版本的JAR,因为当我执行"修复导入"时,它会重新导入旧类,而不是新类.
代码构建和运行,但我必须绝对引用类,而不是相对:
org.acmewidgets.soap.inputs.HeaderType header = new org.acmewidgets.soap.inputs.HeaderType()
Run Code Online (Sandbox Code Playgroud)
代替
HeaderType header = new HeaderType()
Run Code Online (Sandbox Code Playgroud)
以前版本的JAR不需要这个.
我如何"强迫"Eclipse抛弃旧引用并使用新引用?或者,Eclipse运行良好,我的新JAR是否可疑?
谢谢!
有没有人使用PyQt与gevent?如何将PyQt循环链接到gevent?
http://www.gevent.org/ - 基于coroutine的Python网络库,它使用greenlet在libevent事件循环之上提供高级同步API.
Silverlight Dispatcher事件队列的排序是否严格保留?
详细说明:如果我只有一个其他线程调用Dispatcher.BeginInvoke,是否可以保证这些调用将在UI线程上以相同的顺序处理,或者排序是否不确定?
我正在使用arrayCollection字符串填充dropDownList.我希望下拉列表控件的宽度与数组集合中最长字符串的大小(以像素为单位)匹配.我面临的问题是:集合中字符串的字体宽度不同,例如'W'看起来比'l'宽.所以我估计一个字符的宽度为8像素,但这不是很整洁.如果遇到具有许多"W"和"M"的字符串,则估计是错误的.所以我想要精确的字符串像素宽度.如何获得字符串的确切长度(以像素为单位)?
我的解决方案是将所有字符估计为8像素宽,如下所示:
public function populateDropDownList():void{
var array:Array = new Array("o","two","three four five six seven eight wwww");
var sampleArrayCollection:ArrayCollection = new ArrayCollection(array);
var customDropDownList:DropDownList = new DropDownList();
customDropDownList.dataProvider=sampleArrayCollection;
customDropDownList.prompt="Select ...";
customDropDownList.labelField="Answer Options:";
//calculating the max width
var componentWidth=10; //default
for each(var answerText in array){
Alert.show("Txt size: "+ answerText.length + " pixels: " + answerText.length*9);
if(answerText.length * 8 > componentWidth){
componentWidth=answerText.length * 8;
}
}
customDropDownList.width=componentWidth;
answers.addChild(customDropDownList);
}
Run Code Online (Sandbox Code Playgroud)
任何想法或解决方案都很受重视.
谢谢
java ×2
python ×2
android ×1
bug-tracking ×1
c# ×1
dispatcher ×1
eclipse ×1
exception ×1
flex4 ×1
fonts ×1
gevent ×1
import ×1
integer ×1
jar ×1
javascript ×1
list ×1
mocking ×1
moq ×1
pyqt ×1
range ×1
silverlight ×1
string ×1
unit-testing ×1