我正在与Test :: Unit挣扎.当我想到单元测试时,我想到了每个文件的一个简单测试.但是在Ruby的框架中,我必须改为:
class MyTest < Test::Unit::TestCase
def setup
end
def test_1
end
def test_1
end
end
Run Code Online (Sandbox Code Playgroud)
但是每次调用test_*方法都会运行setup和teardown.这正是我不想要的.相反,我想要一个只为整个类运行一次的设置方法.但我似乎无法在不破坏TestCase初始化的情况下编写自己的initialize().
那可能吗?或者我是否使这无可救药地变得复杂?
好的,所以我已经阅读了关于教授初学者编程的各种帖子,并且我会更仔细地看一些有用的东西.但我想知道的是,是否有任何有效的工具专门教孩子Java?
我想特别教他Java,因为(a)我在CI中的强大背景感觉太复杂了,(b)Java是我非常了解的另一种语言,因此我可以有意义地帮助而不需要自学一个新的但是me)无用的语言,(c)我认为托管语言是未来,最后(d)Java是我熟悉的所有语言中最简单的语言之一(除了基本语言).
我在基础学习,并且我愿意首先教授,但我不知道一个体面的免费Windows基础shell(虽然我没有真正搜索过,但因为它不是我的第一选择),并且无论如何都想要进步快到Java.
我儿子8岁,所以比我开始早了几年 - 但他表示有兴趣学习编程(可能是因为我在家工作很多,他一直看我编程).
如果没有人可以建议为此目的设计的工具,我可能会开始使用基于文本/控制台的应用程序来教授基础知识,然后进入GUI构建.
哦,最后一件事,我不是IDE(老式文本编辑器类型)的粉丝,所以我不会被一个让他输入真实代码的系统推迟,并且可能更喜欢玩玩具拖动/下降系统.
编辑:只是为了澄清; 我真的特别想要教他Java的方法; 已经有很多帖子对其他语言替代方案有很好的答案 - 但这不是我在这里寻找的.
编辑:2D视频游戏的Java框架怎么样 - 任何人都可以从个人经验推荐其中任何一个吗?我喜欢他的想法,从他的机制开始(主要游戏循环,得分等)并添加他自己想象的游戏的细节 - 这就是我做的,虽然对我来说这是一个基本的Commodore VIC-20和辛克莱ZX-81.
std :: string size()是否为O(1)操作?
我正在使用的STL的实现是VC++内置的
我正在使用std::map(VC++实现),并且通过map的find方法查找速度有点慢.
关键类型是std::string.
我可以std::map通过地图的自定义键比较覆盖来提高此查找的性能吗?例如,std::string< string::size()compare在比较数据之前可能没有考虑简单的比较?
还有其他想法加快比较吗?
在我的情况下,地图将始终包含<15个元素,但是它会被不断地查询并且性能至关重要.也许有一个更好的数据结构,我可以使用更快?
更新:地图包含文件路径.
Update2:地图的元素经常变化.
通常在Web服务器或数据库中运行函数会更好吗?
例:
INSERT INTO example (hash) VALUE (MD5('hello'))
Run Code Online (Sandbox Code Playgroud)
要么
INSERT INTO example (hash) VALUE ('5d41402abc4b2a76b9719d911017c592')
Run Code Online (Sandbox Code Playgroud)
好的,这是一个非常简单的例子,但是当网站发展到多个网站或数据库服务器时,为了实现可扩展性,哪里最好"做好工作"?
我一直在研究一个不能再被描述为"小"的项目(40多个月),一个团队不再被定义为"小"(约30人).我们一直在使用敏捷/ Scrum(1)实践,并且使用健康剂量的TDD.
我不确定我是从敏捷还是TDD中选择了这个,更可能是两者的结合,但我现在显然是在那些把调试视为难闻气味的人的阵营中.通过'调试'我不是指更抽象的概念,即弄清楚系统可能出现什么问题,而是指在调试模式下运行系统的具体活动,逐步完成代码以找出其他难以理解的细节.
由于我相当确信,这个问题并不是关于调试是否是一种难闻的气味.相反,我想知道如何说服我的队友这个.
认为调试模式是"标准"模式的人倾向于编写只能通过调试才能理解的代码,这会导致浪费大量时间,因为每次你在其他人开发的代码之上处理项目时,你首先花费相当多的时间来调试它(并且,因为没有涉及到错误......这个术语变得越来越荒谬) - 然后就会出现孤岛.所以我很想说服我的一些队友避免调试模式是一件好事(2).但是,由于它们习惯于处于调试模式,因此它们似乎没有看到问题.对他们来说,花费数小时调试别人的代码,然后他们甚至开始做与他们的新项目相关的任何事情是常态; 他们没有看到任何错误.另外,因为他们花时间'搞清楚'
帮助我想出一个让他们脱离黑暗面的计划!
提前致谢.
(1)也称为SCRUM(全部大写).抛开资本化论点,我认为必须使用术语后的星号,因为 - 毫不奇怪 - 我们的组织"调整"敏捷和Scrum流程以适应所有利益相关方的感知需求.所以,老实说,根据理论,我不会假装这是100%,但这不是我的问题.
(2)是的,总是会有时候,我们就必须在调试模式下得到的,我不是要绝对避免,只是..试图尽量减少我们要深入到它的次数.
注意:我提到接下来的几段作为背景.如果您只是想要TL; DR,请随意跳到编号问题,因为它们只是间接与此信息相关.
我正在编写一个python脚本,用POSIX日期(以及其他东西)做一些事情.单元测试这些似乎有点困难,因为可以遇到如此广泛的日期和时间.
当然,尝试测试每一个可能的日期/时间组合是不切实际的,所以我想我会尝试一个随机化输入的单元测试,然后报告测试失败时的输入.从统计学的角度来说,我认为如果我试图考虑所有潜在的问题区域(由于缺少的东西)或测试所有情况(由于纯粹的不可行性),我可以实现更多的测试完整性,假设我运行它足够的时间.
所以这里有几个问题(主要与上述内容间接相关):
我不知道为什么我会收到这个错误,但是这个代码不应该编译,因为我已经检查了队列是否被初始化了?
public static void Main(String[] args)
{
Byte maxSize;
Queue queue;
if(args.Length != 0)
{
if(Byte.TryParse(args[0], out maxSize))
queue = new Queue(){MaxSize = maxSize};
else
Environment.Exit(0);
}
else
{
Environment.Exit(0);
}
for(Byte j = 0; j < queue.MaxSize; j++)
queue.Insert(j);
for(Byte j = 0; j < queue.MaxSize; j++)
Console.WriteLine(queue.Remove());
}
Run Code Online (Sandbox Code Playgroud)
所以如果没有初始化队列,那么for循环是不可以访问的吗?由于程序已经以Environment.Exit(0)终止?
希望你能给我一些指示:)
谢谢.
执行某些静态finallization的正确方法是什么?
没有静态析构函数.AppDomain.DomainUnload默认域中不会引发该事件.该AppDomain.ProcessExit事件共享所有事件处理程序之间的三秒(默认设置)的总时间,因此它实际上不可用.
几天前我在贝尔格莱德参加了一些IT会议.关于议程是一个关于MySql的主题,以及MySql中的聚类,来自MySql的人说他们拥有群集裂脑问题的最佳解决方案,有没有人知道这个,这是真的还是仅仅是营销手段?
c# ×2
c++ ×2
mysql ×2
unit-testing ×2
visual-c++ ×2
.net ×1
debugging ×1
destructor ×1
dictionary ×1
finalizer ×1
java ×1
optimization ×1
performance ×1
php ×1
ruby ×1
split ×1
static ×1
stdmap ×1
stdstring ×1
stl ×1
tdd ×1
testunit ×1