IKo*_*IKo 2 junit assert assertj
我有一个在应该时不会失败的测试:
import static org.assertj.core.api.Assertions.assertThat;
@Test
public void testTransactionResponse() {
String id= "004";
long amount= 5000001L;
TransactionResource transactionResource = buildTransactionResource(amount, "EUR");
System.out.println(transactionController.create(id, transactionResource).getStatusCode()); //the output is 403
assertThat(transactionController.create(id, transactionResource).getStatusCode().equals(200)); //is true and test doesn't fail
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
assertThat返回BooleanAssert并且实际上并不断言任何内容。
AssertJ 提供流畅的 API,因此您应该在此之后调用 assert 方法:
assertThat(
transactionController.create(id, transactionResource).getStatusCode().equals(200)
).isTrue();
Run Code Online (Sandbox Code Playgroud)
但是,您似乎不需要 AssertJ。JUnit 自己的assertTrue就足够了:
assertTrue(transactionController.create(id, transactionResource).getStatusCode().equals(200));
Run Code Online (Sandbox Code Playgroud)
甚至更好,assertEquals:
assertEquals(200, transactionController.create(id, transactionResource).getStatusCode());
Run Code Online (Sandbox Code Playgroud)