我如何使用 @Transaction 注释测试方法。我编写了一个方法,如果我在应用程序运行时(手动)测试它,该方法就可以工作。但我对此的测试不起作用。我的目标是编写一个测试,确保发生异常时我的事务方法可以正常工作,因此数据库中不会存储任何内容。也许测试Transaction注解是否存在就足够了,相信spring工作得很好。:/但这对我来说很难看。
所以我的目标不是测试 springs transaction 的功能。我的目标是进行一个测试,确保如果发生异常,数据库中不会存储任何内容。也许有更好的方法来测试它。
我每次在测试运行之前都会删除数据库。公司的 id 每次都是随机长的。
spring:
data:
mongodb:
uri: mongodb://okAdmin:test@mongo_one:27017,mongo_two:27018,mongo_three:27019/?replicaSet=rs0
database: "ok"
auto-index-creation: false
Run Code Online (Sandbox Code Playgroud)
@Configuration
public class MongoTransactionConfig extends AbstractMongoClientConfiguration {
@Value("${spring.data.mongodb.database}")
private String database;
@Value("${spring.data.mongodb.uri}")
private String mongo_uri;
@Bean
MongoTransactionManager transactionManager(MongoDatabaseFactory mongoDatabaseFactory) {
return new MongoTransactionManager(mongoDatabaseFactory);
}
@Bean
public MongoClient mongoClient() {
return MongoClients.create(mongo_uri);
}
@Override
protected String getDatabaseName() {
return database;
}
}
Run Code Online (Sandbox Code Playgroud)
@Slf4j
@Service
public class CompanyService {
public static final int MIN_NUMBER_OF_BRANCHES = 1; …Run Code Online (Sandbox Code Playgroud)