我建立了一个Ant项目,其中包括使用JUnit的单元测试.
测试目标如下:
<target name="test">
<mkdir dir="target/test/reports"/>
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement location="${test.classes.dir}"/>
<pathelement location="${test.junit.jar}" />
<pathelement path="${classes.dir}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="yes" todir="${test.reports.dir}">
<fileset dir="${test.src.dir}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
</target>
Run Code Online (Sandbox Code Playgroud)
当我运行此测试时,它只在屏幕上显示测试的摘要,如:
Buildfile: F:\test\build.xml
test:
[junit] Running com.mycompany.myproject.myTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.013 sec
[junit] Running com.mycompany.myproject.myTest1
[junit] Tests run: 3, Failures: 1, Errors: 0, Time elapsed: 0.018 sec
BUILD FAILED
F:\test\build.xml:30: Test com.mycompany.myproject.myTest1 failed
Total time: 1 second
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以告诉JUnit或Ant在屏幕上显示详细结果吗?
另外,如果我想在单元测试中写一些东西到屏幕上,我该怎么办呢?我试图在测试中插入System.out.println()但它不会在屏幕上显示任何内容.
非常感谢.
我是番石榴图书馆的新手。
我试图在我的方法参数中使用 Optional 。我发现的一个问题是我不可能将空值传递给 Optional。
我认为引入Optional的目的是为了区分
例如,Optional.absent() 表示该值不存在。而 null 是一个存在的值。
有了这个逻辑,我假设 Optional 必须有某种方式允许我们在其中保存空值。但是,我找不到办法做到这一点。
我的方法定义为:
void myMethod(Optional<String> arguments) {
....
}
Run Code Online (Sandbox Code Playgroud)
如果我使用
myMethod(Optional.of(null));
Run Code Online (Sandbox Code Playgroud)
它会给我运行时错误说值不能为空。
我怎么可能在 Optional 中传递 null ?
Java 线程可以由以下任一方式持有:
上述两种场景在Java线程状态方面有什么区别呢?
考虑下面的简单代码:
synchronized(object) {
object.wait();
System.out.println("Completed.");
}
Run Code Online (Sandbox Code Playgroud)
如果两个线程(比如 ThreadA 和 ThreadB)都被 wait() 方法持有。例如,当另一个线程调用notifyAll()时,ThreadA将从等待中恢复并获得对象上的锁并继续。ThreadB 也会复活,但无法获取对象的锁,并且会一直保持到 ThreadA 退出同步块为止。然后ThreadB获得锁并继续。
结果将打印两个“Completed”。
在这个例子中,肯定有一个时刻,ThreadB从“被wait()持有”变成“因为无法获得对象锁而被持有”。
我想知道它在 Java 内部是如何工作的。请帮忙。
我在独立程序集中使用 WPF 定义了一个自定义控件。在另一个项目中,我只是简单地引用它并在 XAML 中使用它,如下所示:
<my:CustomUserControl Name="myControl" IsEnabled="{Binding CanTheUserInputTrade}"/>
Run Code Online (Sandbox Code Playgroud)
CustomUserControl 类有一个名为“Reset”的成员函数。
我曾经使用以下方法在 View.xaml.cs 文件中调用此函数:
myControl.Reset()
Run Code Online (Sandbox Code Playgroud)
但是,出于正当理由,我必须将调用此函数的逻辑移到 ViewModel 中。据我所知,在 ViewModel 中引用视图并不是一个好习惯。因此,我将无法从 ViewModel 访问“myControl”引用。
我的问题是:如何在 ViewModel 中调用 Reset 函数。
这是一个常见的用例,我相信有一种方法可以做到这一点。有人可以指出我正确的方向。
非常感谢。
我正在写一个Oracle触发器.此触发器应自动将列"productId"的值设置为刚刚插入的行的oid.
我写的触发器是:
create or replace trigger MyProduct_id_trg
after insert on MyProduct
begin
update MyProduct set productId = inserted.oid where oid = inserted.oid;
end;
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.
有人可以帮我弄这个吗?
问候.
我有一个使用以下maven依赖项的项目:
<dependency>
<groupId>com.dropbox</groupId>
<artifactId>client2</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>com.believer</groupId>
<artifactId>box4j</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
<version>2.12</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它会给我警告抱怨:
SLF4J: The requested version 1.5.10 by your …Run Code Online (Sandbox Code Playgroud) 我有两节课
public abstract class AbstractDAO<T> {
private final MyExecutor<T> myExecutor;
private final Class<T> clazz;
public AbstractDAO(MyExecutor<T> myExecutor, Class<T> clazz) {
this.myExecutor = myExecutor;
this.clazz = clazz;
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Component
public class MyDAOImpl extends AbstractDAO<Manager> {
private final SessionManager sessionManager;
private final MyExecutor<Manager> myExecutor;
@Autowired
public MyDAOImpl(SessionManager sessionManager, MyExecutor<Manager> myExecutor) {
super(myExecutor, Manager.class);
this.sessionManager = sessionManager;
this.myExecutor= myExecutor;
}
}
Run Code Online (Sandbox Code Playgroud)
我在抽象类的定义中得到一个错误:“类不包含用于自动装配的匹配构造函数”。
我所做的只是向 AbstractDAO 的构造函数添加了一个额外的构造函数参数,它是一个类。我需要这个,因为我没有找到一种方法可以在运行时从 T 中检测到这一点(堆栈流搜索说没有)。
我怎样才能解决这个问题?如何传递只能在实现类中确定的类信息?
非常感谢
我需要这个正则表达式的帮助.我有许多文件名,格式为:
DataFile_en.dat
DataFile_de.dat
DataFile_es.dat
Run Code Online (Sandbox Code Playgroud)
它是DateFile_,后跟两个字符的语言代码.
我想编写一个正则表达式,匹配所有具有此模式的文件名但不包括英文名称(DataFile_en.dat)
我有这个模式来提取所有文件:
DataFile_\w{2}.dat
Run Code Online (Sandbox Code Playgroud)
但我不知道如何编写模式以排除使用'en'作为语言代码的模式.正则表达式将在Python中使用.
我是Scala的新手.我读到伴侣对象可以访问伴侣类的方法.我有以下代码:
class MinPath {
def minPath(input : List[List[Int]], tempResult : List[List[Int]], currentlevel : Int) : List[List[Int]] = {
....
}
}
object MinPath {
....
def main(args : Array[String]) = {
// This has an compile error
val transformed = minPath(input, List(List()), 0)
}
}
Run Code Online (Sandbox Code Playgroud)
它们在名为MinPath.scala的同一文件中定义.
但是对象中使用的minPath会导致编译错误,因为它无法找到minPath.
我想知道我在这里做错了什么?