36053


Spring
BootでJUnitを使った簡単なテストを試したいと思っていますが、下記ソースを実行すると、`@Autowired`でのインジェクションに失敗し`NullPointerException`が発生します。  
`@Autowired`を使用せずに

[code]

    TestLogic testLogic = new TestLogic();
    Hero testHero = testLogic.testMesod();
    assertEquals(testHero.getHP(), "12");
    
[/code]

とすれば正常に動きますが`@Autowired`を使用した形で処理がうまくいくようにもしたいです。  
どう修正すればよろしいでしょうか。

[code]

    public class SampleTest {
    
    @Autowired
    TestLogic testLogic;
    
    public static void main(String[] args) {
        JUnitCore.main(SampleTest.class.getName());
    }
    
    @Test
    public void testOne() {
    
        Hero testHero = testLogic.testMesod();
    
        assertEquals(testHero.getHP(), "12");
    }
    
    public class Hero {
    
    private String HP;
    private String MP;
    private String atackPower;
    
    public String getHP() {
        return HP;
    }
    public void setHP(String hP) {
        HP = hP;
    }
    public String getMP() {
        return MP;
    }
    public void setMP(String mP) {
        MP = mP;
    }
    public String getAtackPower() {
        return atackPower;
    }
    public void setAtackPower(String atackPower) {
        this.atackPower = atackPower;
    }
    
    @Service
    public class TestLogic {
    
        public Hero testMesod(){
    
         Hero hero = new Hero();
         hero.setHP("12");
        return hero;
        }
    }
    
[/code]


CC BY-SA 3.0
2017-07-02T09:10:16.963
36031
2017-07-03T02:25:15.087
2017-07-02T11:16:47.067
2376
17348
question
java spring-boot
@Autowiredでのインジェクションに失敗する。


テストクラスに

[code]

    @RunWith(SpringRunner.class)
    @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    
[/code]

を追加してみてください。

参考サイト：  
[Testing Spring Boot](https://docs.spring.io/spring-
boot/docs/current/reference/html/boot-features-testing.html)  
[Maven
import](https://mvnrepository.com/artifact/org.springframework.boot/spring-
boot-starter-test/1.2.3.RELEASE)


CC BY-SA 3.0
2017-07-03T02:25:15.087
36053
2017-07-03T02:25:15.087
23688
36031
answer