2017-12-21 5 views
-2

このクラスのJavaコードを実装したいと思います。JUnit;誰かが私に解決策のトラックを与えることができます。JavaコードとJunit

package com.sid.test; 

import static org.assertj.core.api.Assertions.assertThat; 

import org.junit.Test; 


public class TestJUnit { 

    @Test 
    public void TestMethod1() { 

     Prop Prop = new Prop("Mr White", "Mr Black", "Mr Blue") 
       .source("White").destination("Black") 
       .source("Black").destination("Blue"); 

     Prop.dire("Hello").destination("White"); 

     assertThat(Prop.demander("White")).isEqualTo("Hello"); 

     Prop.propager(); 

     assertThat(Prop.demander("White")).isEqualTo(""); 
     assertThat(Prop.demander("Black")).isEqualTo("Hello"); 

     Prop.propager(); 

     assertThat(Prop.demander("Black")).isEqualTo(""); 
     assertThat(Prop.demander("Blue")).isEqualTo("Hello"); 

    } 

} 

クラスPropとそのメソッドを宣言する方法。

+3

あなたのテストがもう失敗しなくなるまで、コードを書いてください。このテストを設計した後の要件はわからないので、それを試してみてください。私たちはあなたのためにあなたの仕事をするためにここにいません – Stultuske

答えて

0

このクラスは、あなたのテストを満たし:

class Prop { 
    private final Iterator<String> responses = Arrays.asList("Hello", "", "Hello", "", "Hello").iterator(); 

    Prop(String... ignored) {} 

    Prop source(String ignored) { return this; } 
    Prop destination(String ignored) { return this; } 
    Prop dire(String ignored) { return this; } 
    void propager() {} 

    String demander(String ignored) { 
    return responses.next(); 
    } 
} 

しかし、うまくいけば、あなたは、このクラスは、男でも獣に全く役に立たないことがわかります。

クラスベースのテストケースを書くことはできません。テストでクラスの振る舞いが完全に指定されている場合は、クラスを書くことができます。それでもテストを満たすクラスを実装する方法はたくさんあります。

あなたのテストは徹底的ではないので、ナンセンスコードを書くことができます。