小编mat*_*t b的帖子

使用Python赋值运算符使用逗号和下划线的含义?

通过Peter Norvig的解决每一个数独拼图文章,我遇到了一些我以前从未见过的Python习语.

我知道函数可以返回一个元组/值列表,在这种情况下,您可以为结果分配多个变量,例如

def f():
    return 1,2

a, b = f()
Run Code Online (Sandbox Code Playgroud)

但是以下各项的含义是什么?

d2, = values[s]  ## values[s] is a string and at this point len(values[s]) is 1
Run Code Online (Sandbox Code Playgroud)

如果len(values[s]) == 1,那么这个陈述与此有何不同d2 = values[s]

关于在作业中使用下划线的另一个问题:

_,s = min((len(values[s]), s) for s in squares if len(values[s]) > 1)
Run Code Online (Sandbox Code Playgroud)

下划线是否具有基本上丢弃列表中返回的第一个值的效果?

python syntax iterable-unpacking

41
推荐指数
4
解决办法
4万
查看次数

在Eclipse的JUnit视图中订购单元测试

Eclipse中的JUnit视图似乎随机排序测试.我如何按类名订购?

java eclipse junit

39
推荐指数
1
解决办法
1万
查看次数

使用Spring进行单元测试与集成测试

我正在开发一个Spring MVC项目,我对源代码树中的所有各种组件进行了单元测试.

例如,如果我有一个HomeController需要LoginService注入的控制器,那么在我的单元测试中,HomeControllerTest我只是将对象实例化为正常(在Spring之外)并注入属性:

protected void setUp() throws Exception {
    super.setUp();
    //...
    controller = new HomeController();
    controller.setLoginService( new SimpleLoginService() );
    //...
}
Run Code Online (Sandbox Code Playgroud)

这对于将每个组件作为一个独立的单元进行测试非常有用 - 除了我在项目中有几十个类,在编写一个类并为它编写成功的单元测试后,我一直忘记更新我的Spring MVC上下文文件部署的应用程序中的实际布线.我发现当我将项目部署到Tomcat并从非有线bean中找到一堆NullPointers时,我忘了更新上下文文件.

所以,这是我的问题:

  1. 这是我的第一个Spring项目 - 正如我所做的那样,为单个bean创建单元测试是正常的,然后创建第二套测试(集成测试)来测试一切是否与实际应用程序上下文一致?这是否有既定的最佳实践?

  2. 另外,如何将单元测试与集成测试分开?我有所有的源代码src,单元测试test- 应该有第二个测试文件夹(如test-integration)用于集成测试用例?

由于这是我的第一个春季项目,我很好奇其他人通常会做这类事情 - 而不是重新发明轮子我宁愿问社区其他人.

java tdd junit integration-testing spring-mvc

38
推荐指数
2
解决办法
1万
查看次数

Eclipse的Velocity编辑器插件?

我见过Veloedit,它似乎有很好的语法高亮,但是不允许正在编辑的文件中的制表符(wtf?),也不了解HTML.

通过一点谷歌搜索,我发现Veloecipse,声称在Veloedit上构建并添加HTML支持 - 但似乎与Eclipse 3.4不兼容.

是否还有其他人使用的其他Velocity模板编辑器插件?

理想的解决方案将具有以下功能:

  • VTL的语法高亮显示
  • HTML语法也突出显示
  • 自动完成VTL语法
  • 允许标签!

更新:请参阅下面的答案

java eclipse velocity

38
推荐指数
2
解决办法
3万
查看次数

从CVS中删除空目录?

我不太确定这是怎么发生的,但不知何故,一个完全空的目录层次结构最终出现在我的存储库中:

com/
com/companyname/
com/companyname/blah/
com/sun/
com/sun/java/
com/sun/java/jax_rpc_ri/
Run Code Online (Sandbox Code Playgroud)

我认为发生的事情是这些目录中确实有文件,但是开发人员意识到他/她不应该首先检查它们,因为这些是构建过程的副产品,所以他/她删除了文件,但不知何故,空目录作为古代遗物留在存储库中.

如何从CVS中删除它?我似乎能够在google上找到的唯一结果是说不应该删除空目录,因为CVS不会首先保留它们,并且-P(prune)选项cvs update应该从中删除它们工作目录 - 如果您的存储库中实际有空目录,那么这将是零帮助.

A cvs remove并且cvs commit似乎没有处理这种情况:

$ cvs remove -Rf com
cvs remove: Removing com
cvs remove: Removing com/companyname
cvs remove: Removing com/companyname/blah
cvs remove: Removing com/sun
cvs remove: Removing com/sun/java
cvs remove: Removing com/sun/java/jax_rpc_ri
$ cvs commit com
cvs commit: Examining com
cvs commit: Examining com/companyname
cvs commit: Examining com/companyname/blah
cvs commit: Examining com/sun
cvs commit: Examining com/sun/java
cvs commit: Examining com/sun/java/jax_rpc_ri …
Run Code Online (Sandbox Code Playgroud)

cvs

36
推荐指数
4
解决办法
6万
查看次数

Javascript循环中的事件处理程序 - 需要一个闭包吗?

我正在处理一些我从其他人手中接过的HTML和Javascript代码.该页面每十秒重新加载一个数据表(通过异步请求),然后使用一些DOM代码重新构建表.有问题的代码看起来像这样:

var blah = xmlres.getElementsByTagName('blah');
for(var i = 0; i < blah.length; i++) {
    var td = document.createElement('td');
    var select = document.createElement('select');
    select.setAttribute("...", "...");
    select.onchange = function() {
        onStatusChanged(select, callid, anotherid);
    };
    td.appendChild(select);
}
Run Code Online (Sandbox Code Playgroud)

但是当onchange为一个<select>元素触发事件时,似乎将相同的值传递给表中每个表的onStatusChanged()方法<select>(我已经在循环的每次迭代中验证了,callid并且anotherid被赋予了新的,不同的值).

我怀疑这是因为我使用select.onchange = function()语法设置事件处理程序的性质.如果我理解这是如何正常工作的,那么这个语法将onchange事件的闭包设置为一个函数,该函数引用这两个引用,最终得到它们在循环的最后一次迭代中设置的最终值.触发事件时,由callid和引用anotherid的值是最后一次迭代中设置的值,而不是在单个迭代中设置的值.

有没有办法可以复制我传递给的参数的值onStatusChanged()

我更改了标题以更好地反映问题和接受的答案.

javascript dom closures loops

36
推荐指数
1
解决办法
1万
查看次数

是否有人使用SpringSource tc服务器作为Tomcat替代品?

看起来SpringSource 刚刚发布了他们的tc Server应用服务器的GA版本.

从他们的描述中可以看出,它是Apache Tomcat的直接替代品,具有更好的"企业功能",例如"高级诊断",更好的运营管理,部署等等(当然,他们想要的支持)卖给你作为他们的主要商业模式).

所以我很好奇(我不确定这是否真的是一个SO问题),但今天有人以任何形式或时尚使用tc服务器吗?它对你有用吗?你有没有找到他们添加到Tomcat的功能值得吗?

java spring tomcat java-ee

31
推荐指数
2
解决办法
2929
查看次数

ArrayList如何工作?

ArrayList在内部使用什么数据结构?

java arraylist

31
推荐指数
3
解决办法
6万
查看次数

基于JPA的JUnit测试最佳实践

这是一个奇怪的问题,但它已经困扰了我几个月了.我使用Wicket + Hibernate构建了一个基于JPA的Web应用程序(使用Maven构建),并希望直接测试DAO层.我创建了一个特定的src/test/resources/META-INF/persistence.xml文件,用于测试,但是已经遇到与WTP等冲突.为了解决这些问题,我创建了一个单独的测试项目,其中单元测试是实时的.有没有更好的方法来管理JPA项目的单元测试而不在持久性文件之间进行决斗?

附录:其他测试框架(例如TestNG)是否会使这更容易?

java junit testng maven-2 jpa

30
推荐指数
2
解决办法
4万
查看次数

在IntelliJ中添加最喜欢的静态导入方法?

在Eclipse中,可以配置某些"最喜欢"的类,当调用代码完成时,将查找这些类,以查看是否可以为方法添加静态导入(这在Preferences> Java> Editor> Content Assist> Favorites下).

例如,我可以开始输入assertT,Eclipse会询问我是否要添加静态导入org.junit.Assert.assertTrue;.

IntelliJ编辑器

在IntelliJ中可以做同样的事情吗?

此问题中详述的方法将为*type(static import org.junit.Assert.*)添加导入,但我不想添加star-imports.我更喜欢只导入我正在使用的方法.

java intellij-idea

29
推荐指数
2
解决办法
1万
查看次数