给出以下示例(使用带有Hamcrest匹配器的JUnit):
Map<String, Class<? extends Serializable>> expected = null;
Map<String, Class<java.util.Date>> result = null;
assertThat(result, is(expected));
Run Code Online (Sandbox Code Playgroud)
这不能使用JUnit assertThat方法签名编译:
public static <T> void assertThat(T actual, Matcher<T> matcher)
Run Code Online (Sandbox Code Playgroud)
编译器错误消息是:
Error:Error:line (102)cannot find symbol method
assertThat(java.util.Map<java.lang.String,java.lang.Class<java.util.Date>>,
org.hamcrest.Matcher<java.util.Map<java.lang.String,java.lang.Class
<? extends java.io.Serializable>>>)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将assertThat方法签名更改为:
public static <T> void assertThat(T result, Matcher<? extends T> matcher)
Run Code Online (Sandbox Code Playgroud)
然后编译工作.
所以有三个问题:
assertThat方法更改为Matcher<? extends T>?是否有任何缺点?如果你这样做,还有其他案例会破裂吗?assertThat在JUnit 中对方法进行泛化是否有任何意义?该Matcher级似乎并不需要它,因为JUnit的调用matches方法,它不与任何普通类型的,只是看起来像一个企图迫使一个类型安全这并不做任何事情,因为Matcher实际上只会不匹配,无论如何测试都会失败.不涉及不安全的操作(或似乎如此).供参考,以下是JUnit的实现assertThat:
public static <T> void assertThat(T actual, Matcher<T> matcher) {
assertThat("", …Run Code Online (Sandbox Code Playgroud) 我需要一个监视器类来定期检查给定的HTTP URL是否可用.我可以使用Spring TaskExecutor抽象来处理"常规"部分,因此这不是主题.问题是:在java中ping URL的首选方法是什么?
这是我当前的代码作为起点:
try {
final URLConnection connection = new URL(url).openConnection();
connection.connect();
LOG.info("Service " + url + " available, yeah!");
available = true;
} catch (final MalformedURLException e) {
throw new IllegalStateException("Bad URL: " + url, e);
} catch (final IOException e) {
LOG.info("Service " + url + " unavailable, oh no!", e);
available = false;
}
Run Code Online (Sandbox Code Playgroud)
GET请求.有没有办法发送HEAD?如果变量声明为public static varName;,那么我可以从任何地方访问它ClassName.varName.我也知道静态成员由类的所有实例共享,并且不会在每个实例中重新分配.
声明变量与声明变量有private static varName;什么不同private varName;?
在这两种情况下,它都不能ClassName.varName作为ClassInstance.varName任何其他类访问.
将变量声明为静态会给它带来其他特殊属性吗?
在工作中,我们目前仍在使用JUnit 3来运行我们的测试.我们一直在考虑切换到JUnit 4进行新的测试,但我一直在关注TestNG.您对JUnit 4或TestNG有什么经验,对于大量的测试似乎更好?编写测试的灵活性对我们来说也很重要,因为我们的功能测试涵盖了广泛的方面,需要以各种方式编写才能获得结果.
旧的测试不会被重写,因为他们的工作做得很好.我希望在新测试中看到的是测试编写方式的灵活性,自然断言,分组和易于分布的测试执行.
我有一个BigDecimal字段amount代表钱,我需要打印其值在浏览器的格式一样$123.00,$15.50,$0.33.
我怎样才能做到这一点?
(我认为自己唯一的简单解决方案是floatValue从分数部分开始BigDecimal,然后使用NumberFormat两位数的精度).
Spring Boot中的注释@ComponentScan和@EnableAutoConfiguration注释有什么区别?是否有必要添加这些?没有这些注释,我的应用程序工作得很好.我只想了解为什么要添加它们.
说我有一个类似的任务:
for(Object object: objects) {
Result result = compute(object);
list.add(result);
}
Run Code Online (Sandbox Code Playgroud)
并行化每个compute()的最简单方法是什么(假设它们已经可并行化)?
我不需要一个严格符合上述代码的答案,只需一般答案.但是如果您需要更多信息:我的任务是IO绑定的,这是针对Spring Web应用程序的,任务将在HTTP请求中执行.
我正在处理Gradle脚本,我需要读取local.properties文件并使用属性文件中的值build.gradle.我是以下面的方式做的.我运行下面的脚本,它现在抛出一个错误,但它也没有做任何事情,如创建,删除和复制文件.我试图打印变量的值,它显示正确的值.
如果这是正确的方法,有人可以告诉我吗?我认为另一种方法是定义所有内容并在其中gradle.properties使用它build.gradle.有人可以告诉我如何build.gradle从中访问属性build.properties?
build.gradle 文件:
apply plugin: 'java'
//-- set the group for publishing
group = 'com.true.test'
/**
* Initializing GAVC settings
*/
def buildProperties = new Properties()
file("version.properties").withInputStream {
stream -> buildProperties.load(stream)
}
//if jenkins build, add the jenkins build version to the version. Else add snapshot version to the version.
def env = System.getenv()
if (env["BUILD_NUMBER"]) buildProperties.test+= ".${env["BUILD_NUMBER"]}"
version = buildProperties.test
println "${version}"
//name is set in …Run Code Online (Sandbox Code Playgroud) 一个菜鸟问题.
我有一个提醒:
"alertMessage" = "This is my message: 1 2 3. And another one: 5 6 7";
Run Code Online (Sandbox Code Playgroud)
我正在展示:
NSString *asd = NSLocalizedString (@"alertMessage", @"");
NSString *alertTitle = NSLocalizedString (@"alertTitle", @"");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:alertTitle message:asd delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
Run Code Online (Sandbox Code Playgroud)
我如何实现换行,以便"另一个:"从第二行开始.
谢谢!
例如,在以下内容中:
Testing "deleting" within quotes
Run Code Online (Sandbox Code Playgroud)
将光标置于删除范围内,如何删除引号内的文本并包含引号,留下:
Testing within quotes
Run Code Online (Sandbox Code Playgroud) java ×8
junit ×2
bigdecimal ×1
formatting ×1
generics ×1
gradle ×1
groovy ×1
http ×1
ios ×1
ios5 ×1
objective-c ×1
ping ×1
private ×1
spring ×1
spring-boot ×1
spring-mvc ×1
static ×1
testing ×1
testng ×1
uialertview ×1
url ×1
variables ×1
vim ×1