AsyncMarkdownSplitterTest.php 931 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace Tests\Unit;
  3. use App\Services\AsyncMarkdownSplitter;
  4. use PHPUnit\Framework\TestCase;
  5. class AsyncMarkdownSplitterTest extends TestCase
  6. {
  7. /** @test */
  8. public function it_splits_markdown_by_question_number_and_keeps_indexes(): void
  9. {
  10. $markdown = <<<MD
  11. 一、选择题
  12. 1. 已知集合 A = {1,2},则 ...
  13. A. 1
  14. B. 2
  15. 2、计算:2+3=?
  16. 3) 解方程:x+1=2
  17. MD;
  18. $splitter = new AsyncMarkdownSplitter();
  19. $blocks = $splitter->split($markdown);
  20. $this->assertCount(3, $blocks);
  21. $this->assertSame(1, $blocks[0]['index']);
  22. $this->assertSame(2, $blocks[1]['index']);
  23. $this->assertSame(3, $blocks[2]['index']);
  24. $this->assertStringContainsString('1.', $blocks[0]['raw_markdown']);
  25. $this->assertStringContainsString('2、', $blocks[1]['raw_markdown']);
  26. $this->assertStringContainsString('3)', $blocks[2]['raw_markdown']);
  27. }
  28. }