dav*_*rld 55 java eclipse junit
这是一个相对开放的问题.如果我在Eclipse中的项目中构建了一个应用程序,然后我想测试这个项目,我应该在同一个项目中创建JUnit代码还是创建一个单独的项目.例如...
ShopSystem也许是我的主要项目的名称 - 我应该创建一个名为say的项目ShopSystemTest吗?
一般来说 - 测试代码应该从主项目文件夹中存储多远?如果我将测试代码存储在主项目中,然后将主项目导出为可运行的jar,它将使用它的测试代码,这是不理想的...
建议?
Hen*_*ing 68
虽然没有正确的方法,但通常的方法是将单元测试保持在同一个项目中.
您可以创建第二个源文件夹(如test),将测试类放入与测试类相同的包中.这也允许您测试包私有类,同时不会使主要源包充满测试类.
您的源文件夹/包结构将如下所示:
-sources
-main
-my.package
-MyClass.java
-test
-my.package
-MyClassTest.java
Run Code Online (Sandbox Code Playgroud)
然后,您可以将test打包配置为在打包JAR时不包含源文件夹.
Sea*_*oyd 21
我非常喜欢maven约定:在同一个项目中有一个单独的main和source测试源代码,主代码部署,测试代码没有.包结构可以(但不一定)相同.
project
src
main
java // source files
resources // xml, properties etc
test
java // source files
resources // xml, properties etc
Run Code Online (Sandbox Code Playgroud)
在eclipse中,当您选择时new -> JUnit test case,只需将源文件夹更改为src/test/java并保留建议的包.
(保留在同一个包中的好处之一是可以访问受保护和包范围的成员,尽管这不是"正确的"单元测试行为)
更新:这里有一些代码来说明我的最后一点:
主类(在src/main/java中):
package com.test;
public class Foo{
static class Phleem{
public Phleem(final String stupidParameter){
}
}
String bar;
protected String baz;
protected Object thingy;
}
Run Code Online (Sandbox Code Playgroud)
测试类(在src/test/java中):
package com.test;
import org.junit.Test;
public class FooTest{
@Test
public void testFoo(){
final Foo foo = new Foo();
foo.bar = "I can access default-scoped members";
foo.baz = "And protected members, too";
foo.thingy = new Foo.Phleem("And I can access default-scoped classes");
}
}
Run Code Online (Sandbox Code Playgroud)
通常你有 -
/src/main/java (for codes)
/src/test/java (for tests)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44087 次 |
| 最近记录: |