Junit 快报;“成功”;或;“抛出异常”;Java单元测试中vavrtry的应用

Junit 快报;“成功”;或;“抛出异常”;Java单元测试中vavrtry的应用,junit,vavr,Junit,Vavr,我有一个简单的单元测试,它对vavr库中的Try对象实例进行断言 @Test public void testFoo() { final Try<Foo> result = createMyFooInstance(); assertThat(result.isSuccess()).isTrue(); } @测试 公共void testFoo() { 最终尝试结果=createMyFooInstance(); 断言(result.issucess()).isTrue

我有一个简单的单元测试,它对vavr库中的
Try
对象实例进行断言

@Test
public void testFoo()
{
    final Try<Foo> result = createMyFooInstance();

    assertThat(result.isSuccess()).isTrue();
}
@测试
公共void testFoo()
{
最终尝试结果=createMyFooInstance();
断言(result.issucess()).isTrue();
}
我的问题集中在测试断言的表述上。 从语义上讲,我希望有“如果foo成功,一切正常,否则,抛出封装的异常”。后者很重要,因此我可以直接在JUnit输出中看到错误原因

是否有任何方便的API可以用来很好地表达这种语义?

您可以使用

@Test
public void testFoo() {
    final Try<Foo> result = createMyFooInstance();
    result.get();
}
你可以用

@Test
public void testFoo() {
    final Try<Foo> result = createMyFooInstance();
    result.get();
}

您在该测试中没有断言。您需要
assertThat(result.issucess()).isTrue()
才能真正拥有一个断言。要求图书馆推荐书在这里是离题的。你说得对,我忽略了它。我不明白你关于图书馆推荐的观点。我在问AssertJ、Vavr和相关的库是否允许我很好地表述语义。所以我不是要一个新的库,而是要如何正确地使用它们。你在测试中没有断言。您需要
assertThat(result.issucess()).isTrue()
才能真正拥有一个断言。要求图书馆推荐书在这里是离题的。你说得对,我忽略了它。我不明白你关于图书馆推荐的观点。我在问AssertJ、Vavr和相关的库是否允许我很好地表述语义。所以我不是要一个新的库,而是要如何正确使用它们?这将在失败时抛出,并允许您断言成功结果。顺便说一句,这就是我们团队的工作。另外,值得一提的是最近的assertj vavr库,我从Yes中看到了一些很酷的东西,如
shouldContain()
,但根据问题,他们没有任何东西可以与结果进行比较。他们只想知道它是否成功,如果不成功,则抛出原始异常-这基本上就是用
get()
打开
Try
?这将在失败时抛出,并允许您断言成功结果。顺便说一句,这就是我们团队的工作。另外,值得一提的是最近的assertj vavr库,我从Yes中看到了一些很酷的东西,如
shouldContain()
,但根据问题,他们没有任何东西可以与结果进行比较。他们只想知道它是否成功,如果不成功,则抛出原始异常-这实际上是用
get()
打开
Try