如果我对每个类和/或成员函数进行单元测试以及每个用户故事的验收测试,我是否有足够的测试来确保项目按预期运行?
例如,如果我有功能的单元测试和验收测试,我还需要集成测试,还是单元和验收测试应该覆盖相同的地面?测试类型之间是否有重叠?
我在这里谈论自动化测试.我知道仍然需要手动测试,比如易用性等.
integration-testing automated-tests unit-testing acceptance-testing
请有人帮忙排序一个菜鸟吗?我已经在各种论坛上发布了这个问题并且没有得到任何答案,而许多搜索其他答案已经发现了stackOverflow,所以我希望这就是这个地方.
我有一个BeachView.h(UIScrollView的子类,沙滩的图片),随机数量为Stone.h(UIImageView的子类,一个石头的随机PNG,userInteractionEnabled = YES接受触摸).
如果用户触摸并在海滩上移动,则应滚动.如果用户点击一块石头,它应该调用方法"touchingStone".如果用户点击没有石头的海滩,则应调用方法"touchingBeach".
现在,我意识到这听起来很简单.每个人和每件事都告诉我,如果UIScrollView上有某些东西接受它应该将控制传递给它的触摸.所以当我触摸并拖动时,它应该滚动; 但如果我点击它,它在石头上,它应该忽略海滩水龙头并接受石头水龙头,是吗?
但是,似乎两个视图都接受了水龙头并且同时调用了触摸的石头和触摸的海滩.此外,沙滩水龙头首先发生,所以我甚至不能放入"如果触摸石头然后不运行touchBeach"类型的标志.
这是一些代码.在BeachView.m上
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (self.decelerating) { didScroll = YES; }
else { didScroll = NO; }
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:touch.view];
NSLog(@"touched beach = %@", [touch view]);
lastTouch = touchLocation;
[super touchesBegan:touches withEvent:event];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
didScroll = YES;
[super touchesMoved:touches withEvent:event];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if (didScroll == NO && isPaused == NO) {
[self touchedBeach:YES …Run Code Online (Sandbox Code Playgroud) 功能分支在合并(重新集成)回到主干后必须删除吗?
我更喜欢不断地从我的功能分支来回合并更改 - 我相信这可以将冲突降到最低.但我明白,一旦你使用reintegrate merge to trunk,就应该删除一个功能分支.
是这样吗?为什么?我能做些什么来规避这个?
更新 我问的是来自该工具的技术问题,而不是"方法问题".我打算在合并后继续处理功能分支.
更新顶部答案确实指定了一个相当复杂的过程(合并,删除和重新分配).在TortoiseSVN中有没有简单的方法来实现这一目标?不应该吗?
有没有办法阻止.NET控制台应用程序被关闭?我有一个遵循这种模式的应用程序:
while (true)
{
string x = Console.ReadLine();
StartLongRunningTaskOnSeparateThread(x);
}
Run Code Online (Sandbox Code Playgroud)
问题是可以关闭控制台窗口(因此切断长时间运行的任务).控制台应用程序是否存在Forms.OnClosing事件的等效项?
编辑 - 我不是想创造一些不可能杀人的东西,也许不会发出警告信息e..g"嘿,我还没有完成.你确定要关闭我吗?"
EDIT2 - 通过"x"按钮防止不合时宜的退出比阻止Ctrl-C(我使用过Console.TreatControlCAsInput = true;)更重要.假设为此目的,任何启动任务管理器的人都想要杀死程序,以至于他们应该能够.并且最终用户宁愿看到警告而不是意外取消他们长时间运行的任务.
我将应用程序设置存储在HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany分支下.不同用户的设置必须相同,这就是设置不在HKEY_CURRENT_USER下的原因.注册表值仅在使用应用程序期间读取.
现在,在Windows Vista中,由于UAC,您不能再使用以下代码来读取注册表值:
RegistryKey myKey = Registry.LocalMachine.CreateSubKey
("SOFTWARE\\MyCompany\\MyAppName");
Run Code Online (Sandbox Code Playgroud)
如何在我的代码(C#)中读取LocalMachine分支的值?
如果是这样,它是一堆吗?
也就是说,我可以:
GoToDefinition
GoTODefinition
GoToDefinition
然后弹出备份调用堆栈?
没有Edit.GoTo ...命令执行我正在寻找的.
TIA.
我有一套夜间报道.
有时我得到例外:
该进程无法访问该文件,因为该文件正由另一个进程使用
如何判断文件中包含哪些进程?我认为这是迈克菲,但我需要证明这一点.
在Windows平台上使用非托管C++,是否有一种简单的方法来检测我的主机所具有的处理器核心数量?
试图看看我是否可以清理我的一些数学代码,主要是矩阵的东西,我试图使用一些Java泛型.我有以下方法:
private <T> T[][] zeroMatrix(int row, int col) {
T[][] retVal = (T[][])new Object[row][col];
for(int i = row; i < row; i++) {
for(int j = col; j < col; j++) {
retVal[i][j] = 0;
}
}
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
retVal [i] [j] = 0行是引起头痛的行.该行的目标是使用T表示为0初始化数组.我试图用它做各种各样的事情:(T在类中被定义为T extends Number)
retVal[i][j] = (T)0;
retVal[i][j] = new T(0);
Run Code Online (Sandbox Code Playgroud)
唯一有效的是
retVal[i][j] = (T)new Object(0);
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
这可能吗?有没有更简单的方法来表示任何类型的数字的NxM矩阵(包括可能的BigDecimal),还是我被困?
c# ×2
.net ×1
c++ ×1
client-side ×1
cocoa-touch ×1
console ×1
generics ×1
iphone ×1
java ×1
merge ×1
objective-c ×1
processors ×1
registry ×1
ruby ×1
server-side ×1
svn ×1
tortoisesvn ×1
uiscrollview ×1
unit-testing ×1