1
私はこのようなメッセージを受け取りました。JUnitテストが失敗したときにユーザーフレンドリーなメッセージを表示
com.controller.Test1 > test FAILED
java.lang.NoSuchMethodError at Test1.java:18
テストコンパイルの依存関係は
testCompile "junit:junit:4.11",
'org.mockito:mockito-all:1.10.19',
'com.jayway.jsonpath:json-path:2.2.0',
'org.hamcrest:hamcrest-all:1.3',
'org.flywaydb.flyway-test-extensions:flyway-dbunit-spring4-test:4.0'
であり、これは私のテストコードです。
package com.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertThat;
@RunWith(MockitoJUnitRunner.class)
public class Test1 {
@Test
public void test(){
assertThat(Long.valueOf(1), instanceOf(Integer.class));
}
}
このようなメッセージが必要です。
が期待される:java.lang.Integerの のインスタンスが、を:< 1L>java.lang.NoSuchMethodError
は、具体的にJUnitのに関連していないがjava.lang.Long
'assertTrue(" messageIfFails "、condition)'を使うのはどうですか? – ha9u63ar
または 'org.junit.Assert.assertThat(String、Object、Matcher <?super Object>)'?最初のparam(文字列)は、メッセージに含まれる理由です。つまり、あなたのテストにはアサーションエラーではなく、 'NoSuchMethodError'で失敗しているので、クラスパスに問題があると思います。 – Taylor