似乎每当我使用命令模式时,它总是导致比我不使用它时更多的类.这似乎很自然,因为我们在不同的类中一起执行相关代码块.如果我没有完成10或12个Command子类,我可能会认为这个项目本来只会使用6或7个类,否则不会打扰我.对于通常的7级项目,有19个左右的课程似乎差错了.
真正困扰我的另一件事是测试所有这些Command子类是一件痛苦的事.在我接到最后几条命令之后,我感到迟钝,好像我移动速度慢,不再灵活.
这对你来说听起来很熟悉吗?我做错了吗?我只是觉得我在这个项目的后期失去了敏捷,而且我真的不知道如何以前几天的速度不断地实施和测试.
我是Common Lisp的新手.在Haskell中,你可以做一些像这样的事情:
Prelude> takeWhile (<= 10) [k | k <- [1..]]
[1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)
这在Lisp中是否可行?不一定有无限列表,但有任何列表.
为什么这个Clojure代码:
user=> (map (constantly (println "Loop it.")) (range 0 3))
Run Code Online (Sandbox Code Playgroud)
产生此输出:
Loop it.
(nil nil nil)
Run Code Online (Sandbox Code Playgroud)
我希望它能三次打印"循环它"三次作为评估功能的副作用.
我正在使用NetBeans 6.8,并且我希望在每次构建之后运行脚本来构建具有预定义模式的SQLite数据库.我没有在Build Configuration下看到任何选项.此功能尚不支持吗?
我想在字符串中gsub所有不是字母的字符,并用'#'替换.我想我需要一个正则表达式,就像这个正则表达式不匹配时的"gsub()".
有任何想法吗?
我正在使用JMock来测试使用对象的类的行为.我想测试该方法a()是否被调用.然而,b()和c()也被称为对象了.因此,如果我的期望预期a(),还必须期待b()和c()以使测试通过.有没有办法只测试某种方法,并允许其他任何方法?
在TDD会话过程中,假设我编写了一个失败的测试,然后让它通过.我通过使用诸如Extract Class和Move Method之类的重构从原始Unit中提取代码来重构.现在进一步假设我的原始测试不再涵盖提取的代码,因为原始代码现在模仿了它的依赖关系,因为单元测试是正确的.
是否适合返回并对提取的代码进行改进测试?或者我在重构过程中如何使用未经测试的代码时犯了错误?感觉就像我的代码库正在缩放,我必须重构,我正在对重构代码进行大量的测试.这感觉真的很尴尬.我重构错了吗?
在Python中,您可以使用该_字段来获取最后一个计算值.这在IDLE中非常有用.Ruby有IRB的等价物吗?
Python的一个例子:
>>> 2 + 2
4
>>> _
4
>>> "Me " + "You"
'Me You'
>>> _
'Me You'
Run Code Online (Sandbox Code Playgroud) 我们有数十万个文件的硬盘
我需要弄清楚我们有多少文件扩展名
我怎么能用python做到这一点?
我需要它来浏览每个目录.我公司的这位律师需要这个.它可以是整个硬盘的总和,它不必按目录细分
例:
1232 JPEG
11 exe
45 bat
2342 avi
532 doc
Run Code Online (Sandbox Code Playgroud) 我是jMock的新手,所以我试着用一个简单的例子.但我无法弄清楚为什么它不起作用.这是我正在测试的课程:
package com.application;
import com.domain.Coordinate;
import com.domain.Playable;
public class ChessFacade {
private final Playable board;
public ChessFacade(Playable aBoard) {
board = aBoard;
}
public void showPotentialMoves(Coordinate aCoordinate) {
board.getTileOccupancy(aCoordinate);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Mock对象测试:
package unit.application;
import application.ChessFacade;
import com.domain.Coordinate;
import com.domain.Playable;
import junit.framework.TestCase;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.runner.RunWith;
@RunWith(JMock.class)
public class ChessFacadeTest extends TestCase {
public void testFacadeGetsPotentialMovesFromBoard() {
Mockery context = new JUnit4Mockery();
final Playable mockBoard = context.mock(Playable.class);
ChessFacade facade = new ChessFacade(mockBoard);
final Coordinate …Run Code Online (Sandbox Code Playgroud)