- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 java 编写一个程序,它本质上测试了很多东西......
对于每次调用,我都需要检查 NullPointerExceptions
、StackOverflow
、IndexOutOfBounds
等...
现在我的每个方法都有这种重复模式:
try {
doSomething();
} catch(NullPointerExceptions npe) {
// prints something
} catch(StackOverflow soe) {
// prints something
} catch(IndexOutOfBounds iob) {
// prints something
}
由于我可能会在一个方法中多次调用 doSomething()
(使用不同的参数),所以我不能只是将异常抛出
回 main (因为我需要下一个测试才能实际运行)。
我想编写一个可以向其传递函数的 lambda 测试器,但我找不到用 java 实现此目的的方法:(。
我想做这样的事情:
private void test(Method m, E expectedValue) {
try {
if(!m.run().equals(expectedValue))
System.out.println("FAILED TEST: "+m.name()+". Value was "+m.run()+", should have been "+expectedValue);
} catch() {
// see above
}
}
最佳答案
在 Java 中你能做的最好的事情就是使用接口(interface):
interface DoSomething<E extends Comparable<E>> {
E doSomething();
}
然后你的test
方法可以如下所示:
private void test(DoSomething<E> m, E expectedValue) {
try {
if(!m.doSomething().equals(expectedValue))
System.out.println("FAILED TEST");
} catch() {
//handle exception
}
}
E
需要延长Comparable<E>
因为你正在调用equals
test
里面.
这称为 SAM(单一抽象方法)接口(interface)。使用 SAM 类和接口(interface)来模拟 lambda 在 Java 中很常见。我什至听说过他们被称为“SAMbdas”。
编辑:我的解决方案不一定涉及修改现有类:
DoSomething foo = new DoSomething<String>() {
public String doSomething() { return "Hello World"; }
};
test(foo, "Hello World");
关于java - 干燥 Java(lambda 函数?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450899/
我有几个链接和 div,我希望它们具有相同的功能。基本上,您单击一个链接/按钮/任何选择的触发器,相应的空间幻灯片就会打开。 标记看起来像... First Second Third 到目前为
我正在尝试使用数据提供程序对多个输入运行 Jasmine 测试。为此,我尝试使用以下链接使用 jasmine-data-provider 包: http://blog.jphpsf.com/2012/
我有一个脚本,可以将用户的输入传递到completed.html 页面上,但这里有两个问题: 所有用户输入都显示在地址栏上,我想隐藏它,但我不想使用 POST 方法,这会破坏我的 JS 脚本的用途。有
DRY(不要重复自己) 假设我在我的应用程序中经常使用此代码: observable$.pipe( tap(value => console.log(value)), map(value =>
这是我正在运行的 MySQL 查询: -- get the sid of every supplier who does not supply both a red and green part SE
下面的内容可以干一点吗? if(totals[label]) { totals[label] += increment; } else { totals[label] = increm
我有这个,而且效果很好: $(document).delegate("tr.updating input, tr.updating a, tr.updating label", 'click', fu
我有一个在程序中广泛使用的简单 C++ 结构。现在我希望将结构作为单个字段保存在 sqlite 数据库中(现在不是作为 blob)。 将struct的属性映射到数据库列有什么好的方法? 最佳答案 由于
在下面的测试中,Bar 和 Baz block 包含相同的规范。 首先撇开为什么需要这样的重复不谈,我想知道如何才能把它干掉。 我尝试将 block 转换为对象并在 Bar 和 Baz 下调用它们,但
很抱歉我的菜鸟问题,但我有一个适用于大型形式的特定领域的函数。我知道我可以对每个可能的字段进行硬编码,但我想让我的代码保持干燥。我可以做什么来将这种独特的功能添加到表单中的每个字段中。 (它们都共享一
我正在用 java 编写一个程序,它本质上测试了很多东西...... 对于每次调用,我都需要检查 NullPointerExceptions、StackOverflow、IndexOutOfBound
我有一个冗长的组件,它传递了许多 Prop 。有没有更干燥的方式将该组件传递给 child ? 谢谢。 let products; if (!this.state.loading) { produ
我有许多 Angular Controller ,其中包含以下代码块(包括一些我无法分解的更具体的内容)。 {{title}} 我希望以最符合 Angular 主义的方
我正在尝试使用 jasmine 测试一些 View 代码。我需要在 View 对象处于不同的包含状态时测试某些元素的存在,而不必在每个状态下重复大量代码。 我有 NodeView 类,它表示具有一些端
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 带来的便利! 但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法
EasyMock 测试似乎倾向于遵循以下模式: @Test public void testCreateHamburger() { // set up the expectation Easy
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我有一个重复比较,我必须检查三个变量是否等于某个变量。为简单起见,我将创建一个场景来说明我遇到的问题。 if time == -1 and day_of_week == -1 and month ==
我已经在 Spring listA 中进行了配置(见下文)。最好有另一个包含 listA 中的所有值并展开它的。 a b
我有一个函数当前正在 JavaScript 中使用 .getElementBy... DOM 调用。 var $ = function (selector) { var elements = []
我是一名优秀的程序员,十分优秀!