私は下のクラスのサンプルをテストしたい:JUnitのを使用して期待
public class Sample{
public boolean sampleMethod(){
SequenceCreate seq = new SequenceCreate();
.... //Code where seq is used
}
}
SequenceCreateは、以下のように作成した別のクラスである:
public class SequenceCreate {
public String nextSeq() {
SecureRandom random = new SecureRandom();
int number = random.nextInt(1000000);
return String.format("%06d", number);
}
}
このdoesntの仕事
@SpringBootTest(classes = TfaApplication.class)
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class SampleTest{
@Autowired
private Sample sample;
@Mock
private SequenceCreate seq;
public void sampleMethodtest(){
when(sample.nextSeq()).return("123");
assertTrue(Boolean.True,sample.sampleMethod());
}
}
:以下のように
私のテストクラス。アサーションは失敗します。 時間をかけてデバッグすると、メソッドsomeMethod()が呼び出され、嘲笑された値をとらないときに、シーケンス番号が生成されることがわかりました。
どうすればいいですか?事前
使用するモッキングフレームワークを明記する必要があります。 'assertTrue(Boolean.True、sample.sampleMethod());'は、最初の部分が 'message'であり、2番目の部分が' true'または 'false'を返さなければならないブール条件なので、常に失敗します。メソッドはブール値ではなく文字列を返します。 'assertTrue(" test was successful "、sample.sampleMethod()。equals(" 123 "));' – XtremeBaumer