Ich habe eine Spring Boot-Webanwendung mit Spring Initializr generiert, die eingebettete Tomcat + Thymeleaf-Vorlagen-Engine verwendet und als ausführbare JAR-Datei gepackt hat.Junit/Spring Boot Mocking-Klassen
verwendet Technologies:
Frühling Stiefel 1.4.2.RELEASE, Frühling 4.3.4.RELEASE, Thymeleaf 2.1.5.RELEASE, Tomcat Embed 8.5.6, Maven 3, Java 8
Ich habe diese Klasse ich habe diese jUnit-Testklasse:
@ContextConfiguration(classes={TestPersistenceConfig.class})
@RunWith(SpringRunner.class)
@SpringBootTest
public class JdbcRemoteUnitRepositoryTests {
@Autowired
private JdbcRemoteUnitRepository repository;
@Autowired
@InjectMocks
private SmsConfig smsConfig;
@Autowired
@InjectMocks
private NextelSMSSender smsService;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testGetAllUnits() throws DataAccessException, SQLException {
Assert.assertTrue(true);
}
}
die Klasse NextelSMSSender:
@Service("smsService")
public class NextelSMSSender {
public final static String OK_STATUS_CODE = "200";
@Autowired
SmsConfig smsConfig;
..
}
.
Aber es scheint, dass nicht die Objekte Eigenschaft verspotten, weil, wenn ich die App verpacke. Ich habe diesen Fehler:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field smsConfig in com.plats.bruts.NextelSMSSender required a bean of type 'com.plats.bruts.config.SmsConfig' that could not be found.
Action:
Consider defining a bean of type 'com.plats.bruts.config.SmsConfig' in your configuration.
ich ein Mock-Bean erstellt TestSmsConfig
genannt, versucht @Bean
hinzuzufügen, aber ich habe einen Kompilierungsfehler:
The annotation @Bean is disallowed for this
location
@Configuration
@Bean
public class TestSmsConfig {
@Value("fake.domainId")
private String domainId;
@Value("fake.sms.gateway.url")
private String gatewayUrl;
...
}