原创

Spring Boot Java で戦略パターンをテストする方法

温馨提示:
本文最后更新于 2024年04月12日,已超过 37 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

戦略を使用したテストと自己戦略についての質問があります。

  1. テストアーキテクチャが可能な限り正しいことを確認したいと考えています。いずれにしても、これらのマップをテストで簡単にモックすることはありません(たぶん)。そのため、毎回オブジェクトを作成しない限りテストが通過しないため、InjectMocks は使用できません。

テスト:

@ExtendWith(MockitoExtension.class)
public class ServiceTest {

    @Mock
    private Map<String, Strategy> strategies;

    private Service service;

    @BeforeEach
    public void init() {
        service = new Service(strategies);
    }

滞在:

@Component
@RequiredArgsConstructor
public class Service {

    private final Map<String, Strategy> strategies;
  1. また、戦略の実装自体のテストに関する質問ですが、それがコンポーネントの場合、そこにフィールドがない(モックするもの何もない)場合でも、戦略的に @InjectMocks を使用する必要がありますか、当面オブジェクトを作成する必要がありますか?例:
class StrategyImplementation1Test {

    private StrategyImplementation1 strategyImplementation1;

    @BeforeEach
    void init() {
        strategyImplementation1 = new StrategyImplementation1();
    }

今度の 1 つ:

@Component("StrategyImplementation1")
public class StrategyImplementation1 implements Strategy {

    @Override
    public boolean doSomething() {
        //--//
    }

}

そこに問題は、この表記が正しいのか、当面違うものにすべきなのかということです。

正文到此结束
热门推荐
本文目录