transpec 1.12.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +103 -99
- data/README.md +52 -8
- data/README.md.erb +240 -95
- data/Rakefile +3 -1
- data/lib/transpec/base_rewriter.rb +1 -1
- data/lib/transpec/cli.rb +2 -1
- data/lib/transpec/converter.rb +9 -65
- data/lib/transpec/spec_suite.rb +3 -36
- data/lib/transpec/syntax.rb +61 -4
- data/lib/transpec/util.rb +0 -6
- data/lib/transpec/version.rb +1 -1
- data/spec/transpec/cli_spec.rb +6 -11
- data/spec/transpec/converter_spec.rb +0 -173
- data/spec/transpec/dynamic_analyzer_spec.rb +1 -1
- data/spec/transpec/record_spec.rb +15 -0
- data/spec/transpec_spec.rb +8 -0
- data/tasks/lib/test.rb +1 -0
- data/tasks/readme.rake +115 -46
- data/tasks/test.rake +2 -6
- metadata +3 -2
data/README.md.erb
CHANGED
@@ -107,6 +107,8 @@ Running dynamic analysis with command "bundle exec rspec"...
|
|
107
107
|
Finished in 13.07 seconds
|
108
108
|
100 examples, 0 failures
|
109
109
|
|
110
|
+
Aggregating spec suite data...
|
111
|
+
|
110
112
|
Converting spec/spec_helper.rb
|
111
113
|
Converting spec/support/cache_helper.rb
|
112
114
|
Converting spec/support/file_helper.rb
|
@@ -258,6 +260,7 @@ Type | Target Syntax | Converted Syntax
|
|
258
260
|
<%=
|
259
261
|
conversion_type_table = <<END
|
260
262
|
`example_group` | `describe 'something' { }` | `RSpec.describe 'something' { }`
|
263
|
+
`hook_scope` | `before(:all) { }` | `before(:context) { }`
|
261
264
|
`stub_with_hash` | `obj.stub(:message => value)` | `allow(obj).to receive(:message).and_return(value)`
|
262
265
|
END
|
263
266
|
|
@@ -337,9 +340,7 @@ END
|
|
337
340
|
<%= convert(example).gsub('original spec', 'converted spec') -%>
|
338
341
|
|
339
342
|
<%=
|
340
|
-
|
341
|
-
configuration.parenthesize_matcher_arg = false
|
342
|
-
convert(example, configuration)
|
343
|
+
convert(example, cli: ['-p'])
|
343
344
|
.gsub(
|
344
345
|
'original spec',
|
345
346
|
'converted spec with -p/--no-parentheses-matcher-arg option'
|
@@ -451,16 +452,24 @@ table_of_contents(supported_conversions_section, 3)
|
|
451
452
|
Targets:
|
452
453
|
|
453
454
|
```ruby
|
455
|
+
<%=
|
456
|
+
positive_example = <<END
|
454
457
|
obj.should matcher
|
458
|
+
END
|
459
|
+
-%>
|
460
|
+
<%=
|
461
|
+
negative_example = <<END
|
455
462
|
obj.should_not matcher
|
463
|
+
END
|
464
|
+
-%>
|
456
465
|
```
|
457
466
|
|
458
467
|
Will be converted to:
|
459
468
|
|
460
469
|
```ruby
|
461
|
-
|
462
|
-
|
463
|
-
|
470
|
+
<%= convert(positive_example, wrap_with: :example) -%>
|
471
|
+
<%= convert(negative_example, wrap_with: :example) -%>
|
472
|
+
<%= convert(negative_example, wrap_with: :example, cli: ['--negative-form', 'to_not']).chomp -%> # with `--negative-form to_not`
|
464
473
|
```
|
465
474
|
|
466
475
|
* This conversion can be disabled by: `--keep should`
|
@@ -469,21 +478,29 @@ expect(obj).to_not matcher # with `--negative-form to_not`
|
|
469
478
|
|
470
479
|
### One-liner expectations
|
471
480
|
|
472
|
-
**This conversion is available only if your project's RSpec is `<%= Transpec::RSpecVersion.oneliner_is_expected_available_version %>` or later.**
|
481
|
+
**This conversion is available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.oneliner_is_expected_available_version %>` or later.**
|
473
482
|
|
474
483
|
Targets:
|
475
484
|
|
476
485
|
```ruby
|
486
|
+
<%=
|
487
|
+
positive_example = <<END
|
477
488
|
it { should matcher }
|
489
|
+
END
|
490
|
+
-%>
|
491
|
+
<%=
|
492
|
+
negative_example = <<END
|
478
493
|
it { should_not matcher }
|
494
|
+
END
|
495
|
+
-%>
|
479
496
|
```
|
480
497
|
|
481
498
|
Will be converted to:
|
482
499
|
|
483
500
|
```ruby
|
484
|
-
|
485
|
-
|
486
|
-
|
501
|
+
<%= convert(positive_example, wrap_with: :example, rspec_version: rspec_version) -%>
|
502
|
+
<%= convert(negative_example, wrap_with: :example, rspec_version: rspec_version) -%>
|
503
|
+
<%= convert(negative_example, wrap_with: :example, rspec_version: rspec_version, cli: ['--negative-form', 'to_not']).chomp -%> # with `--negative-form to_not`
|
487
504
|
```
|
488
505
|
|
489
506
|
`is_expected.to` is designed for the consistency with the `expect` syntax.
|
@@ -495,7 +512,7 @@ feel free to disable this conversion and continue using the one-liner `should`.
|
|
495
512
|
See [Two Types of `should`](#two-types-of-should) also.
|
496
513
|
|
497
514
|
* This conversion can be disabled by: `--keep oneliner`
|
498
|
-
* Deprecation:
|
515
|
+
* Deprecation: not deprecated
|
499
516
|
* See also: [Add `is_expected` for expect-based one-liner syntax. by myronmarston · rspec/rspec-core](https://github.com/rspec/rspec-core/pull/1180)
|
500
517
|
|
501
518
|
### Operator matchers
|
@@ -503,21 +520,21 @@ See [Two Types of `should`](#two-types-of-should) also.
|
|
503
520
|
Targets:
|
504
521
|
|
505
522
|
```ruby
|
523
|
+
<%=
|
524
|
+
example = <<END
|
506
525
|
1.should == 1
|
507
526
|
1.should < 2
|
508
527
|
Integer.should === 1
|
509
528
|
'string'.should =~ /^str/
|
510
529
|
[1, 2, 3].should =~ [2, 1, 3]
|
530
|
+
END
|
531
|
+
-%>
|
511
532
|
```
|
512
533
|
|
513
534
|
Will be converted to:
|
514
535
|
|
515
536
|
```ruby
|
516
|
-
|
517
|
-
expect(1).to be < 2
|
518
|
-
expect(Integer).to be === 1
|
519
|
-
expect('string').to match(/^str/)
|
520
|
-
expect([1, 2, 3]).to match_array([2, 1, 3])
|
537
|
+
<%= convert(example, wrap_with: :example) -%>
|
521
538
|
```
|
522
539
|
|
523
540
|
This conversion is combined with the conversion of [standard expectations](#standard-expecatations) and cannot be disabled separately because the `expect` syntax does not directly support the operator matchers.
|
@@ -526,29 +543,30 @@ This conversion is combined with the conversion of [standard expectations](#stan
|
|
526
543
|
|
527
544
|
### Boolean matchers
|
528
545
|
|
529
|
-
**This conversion is available only if your project's RSpec is `<%= Transpec::RSpecVersion.be_truthy_available_version %>` or later.**
|
546
|
+
**This conversion is available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.be_truthy_available_version %>` or later.**
|
530
547
|
|
531
548
|
Targets:
|
532
549
|
|
533
550
|
```ruby
|
551
|
+
<%=
|
552
|
+
example = <<END
|
534
553
|
expect(obj).to be_true
|
535
554
|
expect(obj).to be_false
|
555
|
+
END
|
556
|
+
-%>
|
536
557
|
```
|
537
558
|
|
538
559
|
Will be converted to:
|
539
560
|
|
540
561
|
```ruby
|
541
|
-
|
542
|
-
expect(obj).to be_falsey
|
562
|
+
<%= convert(example, rspec_version: rspec_version, wrap_with: :example) -%>
|
543
563
|
|
544
564
|
# With `--boolean-matcher truthy,falsy`
|
545
565
|
# be_falsy is just an alias of be_falsey.
|
546
|
-
|
547
|
-
expect(obj).to be_falsy
|
566
|
+
<%= convert(example, cli: ['--boolean-matcher', 'truthy,falsy'], rspec_version: rspec_version, wrap_with: :example) -%>
|
548
567
|
|
549
568
|
# With `--boolean-matcher true,false`
|
550
|
-
|
551
|
-
expect(obj).to be false
|
569
|
+
<%= convert(example, cli: ['--boolean-matcher', 'true,false'], rspec_version: rspec_version, wrap_with: :example) -%>
|
552
570
|
```
|
553
571
|
|
554
572
|
* `be_true` matcher passes if expectation subject is _truthy_ in conditional semantics. (i.e. all objects except `false` and `nil`)
|
@@ -569,13 +587,17 @@ So, converting `be_true`/`be_false` to `be_truthy`/`be_falsey` never breaks your
|
|
569
587
|
Targets:
|
570
588
|
|
571
589
|
```ruby
|
590
|
+
<%=
|
591
|
+
example = <<END
|
572
592
|
expect(1.0 / 3.0).to be_close(0.333, 0.001)
|
593
|
+
END
|
594
|
+
-%>
|
573
595
|
```
|
574
596
|
|
575
597
|
Will be converted to:
|
576
598
|
|
577
599
|
```ruby
|
578
|
-
|
600
|
+
<%= convert(example, wrap_with: :example) -%>
|
579
601
|
```
|
580
602
|
|
581
603
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -589,31 +611,74 @@ expect(1.0 / 3.0).to be_within(0.001).of(0.333)
|
|
589
611
|
Targets:
|
590
612
|
|
591
613
|
```ruby
|
614
|
+
<%=
|
615
|
+
example = <<END
|
592
616
|
expect(collection).to have(3).items
|
593
617
|
expect(collection).to have_exactly(3).items
|
594
618
|
expect(collection).to have_at_least(3).items
|
595
619
|
expect(collection).to have_at_most(3).items
|
620
|
+
END
|
621
|
+
-%>
|
622
|
+
|
623
|
+
<%=
|
624
|
+
should_example = <<END
|
596
625
|
collection.should have(3).items
|
626
|
+
END
|
627
|
+
-%>
|
597
628
|
|
598
629
|
# Assume `team` responds to #players.
|
630
|
+
<%=
|
631
|
+
collection_owner_example = <<END
|
599
632
|
expect(team).to have(3).players
|
633
|
+
END
|
634
|
+
-%>
|
600
635
|
|
601
636
|
# Assume #players is a private method.
|
637
|
+
<%=
|
638
|
+
private_method_example = <<END
|
602
639
|
expect(team).to have(3).players
|
640
|
+
END
|
641
|
+
-%>
|
603
642
|
```
|
604
643
|
|
605
644
|
Will be converted to:
|
606
645
|
|
607
646
|
```ruby
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
647
|
+
<%=
|
648
|
+
convert(example, dynamic: true, wrap_with: :example, hidden: 'collection = [1, 2, 3]')
|
649
|
+
-%>
|
650
|
+
|
651
|
+
<%=
|
652
|
+
" # With `--keep should`\n" +
|
653
|
+
convert(should_example, cli: ['--keep', 'should'], dynamic: true, wrap_with: :example, hidden: 'collection = [1, 2, 3]')
|
654
|
+
-%>
|
612
655
|
|
613
|
-
|
656
|
+
<%=
|
657
|
+
convert(collection_owner_example, dynamic: true, wrap_with: :example, hidden: <<END)
|
658
|
+
class Team
|
659
|
+
def players
|
660
|
+
[1, 2, 3]
|
661
|
+
end
|
662
|
+
end
|
663
|
+
|
664
|
+
team = Team.new
|
665
|
+
END
|
666
|
+
-%>
|
614
667
|
|
615
668
|
# have(n).items matcher invokes #players even if it's a private method.
|
616
|
-
|
669
|
+
<%=
|
670
|
+
convert(private_method_example, dynamic: true, wrap_with: :example, hidden: <<END)
|
671
|
+
class Team
|
672
|
+
private
|
673
|
+
|
674
|
+
def players
|
675
|
+
[1, 2, 3]
|
676
|
+
end
|
677
|
+
end
|
678
|
+
|
679
|
+
team = Team.new
|
680
|
+
END
|
681
|
+
-%>
|
617
682
|
```
|
618
683
|
|
619
684
|
There's an option to continue using `have(n).items` matcher with [rspec-collection_matchers](https://github.com/rspec/rspec-collection_matchers) which is a gem extracted from `rspec-expectations`.
|
@@ -637,25 +702,39 @@ Note: `rspec-rails` 3.0 [still uses `have(n).items` matcher with `rspec-collecti
|
|
637
702
|
Targets:
|
638
703
|
|
639
704
|
```ruby
|
705
|
+
<%=
|
706
|
+
example = <<END
|
640
707
|
it { should have(3).items }
|
708
|
+
END
|
709
|
+
-%>
|
710
|
+
<%=
|
711
|
+
collection_owner_example = <<END
|
641
712
|
it { should have_at_least(3).players }
|
713
|
+
END
|
714
|
+
-%>
|
642
715
|
```
|
643
716
|
|
644
717
|
Will be converted to:
|
645
718
|
|
646
719
|
```ruby
|
647
|
-
|
648
|
-
expect(subject.size).to eq(3)
|
649
|
-
end
|
720
|
+
<%= convert(example, dynamic: true, wrap_with: :group, hidden: 'subject { [1, 2, 3] }') -%>
|
650
721
|
|
651
722
|
# With `--keep should`
|
652
|
-
|
653
|
-
subject.size.should == 3
|
654
|
-
end
|
723
|
+
<%= convert(example, dynamic: true, wrap_with: :group, hidden: 'subject { [1, 2, 3] }', cli: ['--keep', 'should']) -%>
|
655
724
|
|
656
|
-
|
657
|
-
|
725
|
+
<%=
|
726
|
+
convert(collection_owner_example, dynamic: true, wrap_with: :group, hidden: <<END)
|
727
|
+
subject do
|
728
|
+
class Team
|
729
|
+
def players
|
730
|
+
[1, 2, 3]
|
731
|
+
end
|
732
|
+
end
|
733
|
+
|
734
|
+
Team.new
|
658
735
|
end
|
736
|
+
END
|
737
|
+
-%>
|
659
738
|
```
|
660
739
|
|
661
740
|
* This conversion can be disabled by: `--keep have_items`
|
@@ -665,15 +744,19 @@ end
|
|
665
744
|
Targets:
|
666
745
|
|
667
746
|
```ruby
|
747
|
+
<%=
|
748
|
+
example = <<END
|
668
749
|
lambda { do_something }.should raise_error
|
669
750
|
proc { do_something }.should raise_error
|
670
751
|
-> { do_something }.should raise_error
|
752
|
+
END
|
753
|
+
-%>
|
671
754
|
```
|
672
755
|
|
673
756
|
Will be converted to:
|
674
757
|
|
675
758
|
```ruby
|
676
|
-
|
759
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
677
760
|
```
|
678
761
|
|
679
762
|
* This conversion can be disabled by: `--keep should`
|
@@ -722,17 +805,25 @@ If you choose to do so, disable this conversion by either:
|
|
722
805
|
Targets:
|
723
806
|
|
724
807
|
```ruby
|
808
|
+
<%=
|
809
|
+
example = <<END
|
725
810
|
expect { do_something }.not_to raise_error(SomeErrorClass)
|
726
811
|
expect { do_something }.not_to raise_error('message')
|
727
812
|
expect { do_something }.not_to raise_error(SomeErrorClass, 'message')
|
813
|
+
END
|
814
|
+
-%>
|
815
|
+
<%=
|
816
|
+
should_example = <<END
|
728
817
|
lambda { do_something }.should_not raise_error(SomeErrorClass)
|
818
|
+
END
|
819
|
+
-%>
|
729
820
|
```
|
730
821
|
|
731
822
|
Will be converted to:
|
732
823
|
|
733
824
|
```ruby
|
734
|
-
|
735
|
-
|
825
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
826
|
+
<%= convert(should_example, wrap_with: :example, cli: ['--keep', 'should']).chomp -%> # with `--keep should`
|
736
827
|
```
|
737
828
|
|
738
829
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -744,15 +835,18 @@ lambda { do_something }.should_not raise_error # with `--keep should`
|
|
744
835
|
Targets:
|
745
836
|
|
746
837
|
```ruby
|
838
|
+
<%=
|
839
|
+
example = <<END
|
747
840
|
obj.should_receive(:message)
|
748
841
|
Klass.any_instance.should_receive(:message)
|
842
|
+
END
|
843
|
+
-%>
|
749
844
|
```
|
750
845
|
|
751
846
|
Will be converted to:
|
752
847
|
|
753
848
|
```ruby
|
754
|
-
|
755
|
-
expect_any_instance_of(Klass).to receive(:message)
|
849
|
+
<%= convert(example, wrap_with: :example) -%>
|
756
850
|
```
|
757
851
|
|
758
852
|
* This conversion can be disabled by: `--keep should_receive`
|
@@ -764,21 +858,29 @@ expect_any_instance_of(Klass).to receive(:message)
|
|
764
858
|
Targets:
|
765
859
|
|
766
860
|
```ruby
|
861
|
+
<%=
|
862
|
+
example = <<END
|
767
863
|
obj.should_receive(:message).any_number_of_times
|
768
864
|
obj.should_receive(:message).at_least(0)
|
865
|
+
END
|
866
|
+
-%>
|
769
867
|
|
868
|
+
<%=
|
869
|
+
any_instance_example = <<END
|
770
870
|
Klass.any_instance.should_receive(:message).any_number_of_times
|
771
871
|
Klass.any_instance.should_receive(:message).at_least(0)
|
872
|
+
END
|
873
|
+
-%>
|
772
874
|
```
|
773
875
|
|
774
876
|
Will be converted to:
|
775
877
|
|
776
878
|
```ruby
|
777
|
-
|
778
|
-
|
879
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
880
|
+
<%= convert(example, wrap_with: :example, cli: ['--keep', 'stub']).lines.to_a.uniq.join("\n").chomp -%> # with `--keep stub`
|
779
881
|
|
780
|
-
|
781
|
-
|
882
|
+
<%= convert(any_instance_example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
883
|
+
<%= convert(any_instance_example, wrap_with: :example, cli: ['--keep', 'stub']).lines.to_a.uniq.join("\n").chomp -%> # with `--keep stub`
|
782
884
|
```
|
783
885
|
|
784
886
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -790,29 +892,45 @@ Klass.any_instance.stub(:message) # with `--keep stub`
|
|
790
892
|
Targets:
|
791
893
|
|
792
894
|
```ruby
|
895
|
+
<%=
|
896
|
+
example = <<END
|
793
897
|
obj.stub(:message)
|
794
898
|
obj.stub!(:message)
|
899
|
+
END
|
900
|
+
-%>
|
795
901
|
|
902
|
+
<%=
|
903
|
+
stub_chain_example = <<END
|
796
904
|
obj.stub_chain(:foo, :bar, :baz)
|
905
|
+
END
|
906
|
+
-%>
|
797
907
|
|
908
|
+
<%=
|
909
|
+
any_instance_example = <<END
|
798
910
|
Klass.any_instance.stub(:message)
|
911
|
+
END
|
912
|
+
-%>
|
799
913
|
|
914
|
+
<%=
|
915
|
+
unstub_example = <<END
|
800
916
|
obj.unstub(:message)
|
801
917
|
obj.unstub!(:message)
|
918
|
+
END
|
919
|
+
-%>
|
802
920
|
```
|
803
921
|
|
804
922
|
Will be converted to:
|
805
923
|
|
806
924
|
```ruby
|
807
|
-
|
925
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
808
926
|
|
809
927
|
# Conversion from `stub_chain` to `receive_message_chain` is available
|
810
|
-
# only if the target project's RSpec is <%= Transpec::RSpecVersion.receive_message_chain_available_version %> or later
|
811
|
-
|
928
|
+
# only if the target project's RSpec is <%= rspec_version = Transpec::RSpecVersion.receive_message_chain_available_version %> or later
|
929
|
+
<%= convert(stub_chain_example, wrap_with: :example, rspec_version: rspec_version) -%>
|
812
930
|
|
813
|
-
|
931
|
+
<%= convert(any_instance_example, wrap_with: :example) -%>
|
814
932
|
|
815
|
-
|
933
|
+
<%= convert(unstub_example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
816
934
|
```
|
817
935
|
|
818
936
|
* This conversion can be disabled by: `--keep stub`
|
@@ -826,22 +944,25 @@ allow(obj).to receive(:message).and_call_original
|
|
826
944
|
Targets:
|
827
945
|
|
828
946
|
```ruby
|
947
|
+
<%=
|
948
|
+
example = <<END
|
829
949
|
obj.stub(:foo => 1, :bar => 2)
|
950
|
+
END
|
951
|
+
-%>
|
830
952
|
```
|
831
953
|
|
832
954
|
Will be converted to:
|
833
955
|
|
834
956
|
```ruby
|
835
|
-
# If the target project's RSpec is <%= Transpec::RSpecVersion.receive_messages_available_version %> or later
|
836
|
-
|
957
|
+
# If the target project's RSpec is <%= rspec_version = Transpec::RSpecVersion.receive_messages_available_version %> or later
|
958
|
+
<%= convert(example, wrap_with: :example, rspec_version: rspec_version) -%>
|
837
959
|
|
838
960
|
# If the target project's RSpec is prior to <%= Transpec::RSpecVersion.receive_messages_available_version %>
|
839
|
-
|
961
|
+
<%= convert(example, wrap_with: :example, rspec_version: Transpec.required_rspec_version).chomp -%> # No conversion
|
840
962
|
|
841
963
|
# If the target project's RSpec is prior to <%= Transpec::RSpecVersion.receive_messages_available_version %>
|
842
|
-
# and `--convert
|
843
|
-
|
844
|
-
allow(obj).to receive(:bar).and_return(2)
|
964
|
+
# and `--convert stub-with-hash` is specified
|
965
|
+
<%= convert(example, wrap_with: :example, rspec_version: Transpec.required_rspec_version, cli: ['--convert', 'stub_with_hash']) -%>
|
845
966
|
```
|
846
967
|
|
847
968
|
`allow(obj).to receive_messages(:foo => 1, :bar => 2)` which is designed to be the replacement for `obj.stub(:foo => 1, :bar => 2)` is available from RSpec 3.0.
|
@@ -864,15 +985,19 @@ Or if you're going to stay RSpec 2.14 for now but want to convert all `stub` to
|
|
864
985
|
Targets:
|
865
986
|
|
866
987
|
```ruby
|
988
|
+
<%=
|
989
|
+
example = <<END
|
867
990
|
obj.stub!(:message)
|
868
991
|
obj.unstub!(:message)
|
992
|
+
END
|
993
|
+
-%>
|
869
994
|
```
|
870
995
|
|
871
996
|
Will be converted to:
|
872
997
|
|
873
998
|
```ruby
|
874
|
-
|
875
|
-
|
999
|
+
# With `--keep stub`
|
1000
|
+
<%= convert(example, wrap_with: :example, cli: ['--keep', 'stub']) -%>
|
876
1001
|
```
|
877
1002
|
|
878
1003
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -884,15 +1009,19 @@ obj.unstub(:message) # with `--keep stub`
|
|
884
1009
|
Targets:
|
885
1010
|
|
886
1011
|
```ruby
|
1012
|
+
<%=
|
1013
|
+
example = <<END
|
887
1014
|
obj.stub(:message).any_number_of_times
|
888
1015
|
obj.stub(:message).at_least(0)
|
1016
|
+
END
|
1017
|
+
-%>
|
889
1018
|
```
|
890
1019
|
|
891
1020
|
Will be converted to:
|
892
1021
|
|
893
1022
|
```ruby
|
894
|
-
|
895
|
-
|
1023
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
1024
|
+
<%= convert(example, wrap_with: :example, cli: ['--keep', 'stub']).lines.to_a.uniq.join("\n").chomp -%> # with `--keep stub`
|
896
1025
|
```
|
897
1026
|
|
898
1027
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -918,7 +1047,7 @@ END
|
|
918
1047
|
Will be converted to:
|
919
1048
|
|
920
1049
|
```ruby
|
921
|
-
<%= convert(example) -%>
|
1050
|
+
<%= convert(example, wrap_with: :example) -%>
|
922
1051
|
```
|
923
1052
|
|
924
1053
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -952,18 +1081,11 @@ END
|
|
952
1081
|
Will be converted to:
|
953
1082
|
|
954
1083
|
```ruby
|
955
|
-
|
956
|
-
rspec_version
|
957
|
-
convert(example, nil, rspec_version)
|
958
|
-
-%>
|
1084
|
+
<% rspec_version = Transpec::RSpecVersion.yielding_receiver_to_any_instance_implementation_block_available_version -%>
|
1085
|
+
<%= convert(example, rspec_version: rspec_version) -%>
|
959
1086
|
|
960
1087
|
# With `--no-yield-any-instance`
|
961
|
-
<%=
|
962
|
-
configuration = Transpec::Configuration.new
|
963
|
-
configuration.add_receiver_arg_to_any_instance_implementation_block = false
|
964
|
-
rspec_version = Transpec::RSpecVersion.yielding_receiver_to_any_instance_implementation_block_available_version
|
965
|
-
convert(example, configuration, rspec_version)
|
966
|
-
-%>
|
1088
|
+
<%= convert(example, cli: ['--no-yield-any-instance'], rspec_version: rspec_version) -%>
|
967
1089
|
```
|
968
1090
|
|
969
1091
|
Here's an excerpt from [the warning](https://github.com/rspec/rspec-mocks/blob/aab8dc9/lib/rspec/mocks/message_expectation.rb#L478-L491) for `any_instance` implementation blocks in RSpec 2.99:
|
@@ -994,14 +1116,18 @@ Here's an excerpt from [the warning](https://github.com/rspec/rspec-mocks/blob/a
|
|
994
1116
|
Targets:
|
995
1117
|
|
996
1118
|
```ruby
|
1119
|
+
<%=
|
1120
|
+
example = <<END
|
997
1121
|
stub('something')
|
998
1122
|
mock('something')
|
1123
|
+
END
|
1124
|
+
-%>
|
999
1125
|
```
|
1000
1126
|
|
1001
1127
|
Will be converted to:
|
1002
1128
|
|
1003
1129
|
```ruby
|
1004
|
-
|
1130
|
+
<%= convert(example, wrap_with: :example).lines.to_a.uniq.join("\n") -%>
|
1005
1131
|
```
|
1006
1132
|
|
1007
1133
|
* This conversion can be disabled by: `--keep deprecated`
|
@@ -1045,8 +1171,7 @@ Will be converted to:
|
|
1045
1171
|
|
1046
1172
|
```ruby
|
1047
1173
|
<%=
|
1048
|
-
rspec_version
|
1049
|
-
convert(example, nil, rspec_version)
|
1174
|
+
convert(example, rspec_version: Transpec::RSpecVersion.skip_available_version)
|
1050
1175
|
.gsub('pending', 'pending # #pending with block is no longer supported')
|
1051
1176
|
-%>
|
1052
1177
|
```
|
@@ -1069,7 +1194,7 @@ Here's an excerpt from [the warning](https://github.com/rspec/rspec-core/blob/v2
|
|
1069
1194
|
|
1070
1195
|
### Current example object
|
1071
1196
|
|
1072
|
-
**This conversion is available only if your project's RSpec is `<%= Transpec::RSpecVersion.yielded_example_available_version %>` or later.**
|
1197
|
+
**This conversion is available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.yielded_example_available_version %>` or later.**
|
1073
1198
|
|
1074
1199
|
Targets:
|
1075
1200
|
|
@@ -1096,10 +1221,7 @@ END
|
|
1096
1221
|
Will be converted to:
|
1097
1222
|
|
1098
1223
|
```ruby
|
1099
|
-
<%=
|
1100
|
-
rspec_version = Transpec::RSpecVersion.yielded_example_available_version
|
1101
|
-
convert(example, nil, rspec_version)
|
1102
|
-
-%>
|
1224
|
+
<%= convert(example, rspec_version: rspec_version) -%>
|
1103
1225
|
```
|
1104
1226
|
|
1105
1227
|
Here's an excerpt from [the warning](https://github.com/rspec/rspec-core/blob/7d6d2ca/lib/rspec/core/example_group.rb#L513-L527) for `RSpec::Core::ExampleGroup#example` and `#running_example` in RSpec 2.99:
|
@@ -1124,7 +1246,7 @@ Here's an excerpt from [the warning](https://github.com/rspec/rspec-core/blob/7d
|
|
1124
1246
|
|
1125
1247
|
### Custom matcher DSL
|
1126
1248
|
|
1127
|
-
**This conversion is available only if your project's RSpec is `<%= Transpec::RSpecVersion.non_should_matcher_protocol_available_version %>` or later.**
|
1249
|
+
**This conversion is available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.non_should_matcher_protocol_available_version %>` or later.**
|
1128
1250
|
|
1129
1251
|
Targets:
|
1130
1252
|
|
@@ -1144,19 +1266,16 @@ END
|
|
1144
1266
|
Will be converted to:
|
1145
1267
|
|
1146
1268
|
```ruby
|
1147
|
-
<%=
|
1148
|
-
rspec_version = Transpec::RSpecVersion.non_should_matcher_protocol_available_version
|
1149
|
-
convert(example, nil, rspec_version)
|
1150
|
-
-%>
|
1269
|
+
<%= convert(example, rspec_version: rspec_version) -%>
|
1151
1270
|
```
|
1152
1271
|
|
1153
1272
|
* This conversion can be disabled by: `--keep deprecated`
|
1154
1273
|
* Deprecation: deprecated since RSpec 3.0
|
1155
1274
|
* See also: [Expectations: Matcher protocol and custom matcher API changes - The Plan for RSpec 3](http://myronmars.to/n/dev-blog/2013/07/the-plan-for-rspec-3#expectations_matcher_protocol_and_custom_matcher_api_changes)
|
1156
1275
|
|
1157
|
-
### Example
|
1276
|
+
### Example groups
|
1158
1277
|
|
1159
|
-
**This conversion is disabled by default and available only if your project's RSpec is `<%= Transpec::RSpecVersion.non_monkey_patch_example_group_available_version %>` or later.**
|
1278
|
+
**This conversion is disabled by default and available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.non_monkey_patch_example_group_available_version %>` or later.**
|
1160
1279
|
|
1161
1280
|
Targets:
|
1162
1281
|
|
@@ -1180,18 +1299,44 @@ END
|
|
1180
1299
|
Will be converted to:
|
1181
1300
|
|
1182
1301
|
```ruby
|
1183
|
-
<%=
|
1184
|
-
configuration = Transpec::Configuration.new
|
1185
|
-
configuration.convert_example_group = true
|
1186
|
-
rspec_version = Transpec::RSpecVersion.non_monkey_patch_example_group_available_version
|
1187
|
-
convert(example, configuration, rspec_version)
|
1188
|
-
-%>
|
1302
|
+
<%= convert(example, cli: ['--convert', 'example_group'], rspec_version: rspec_version) -%>
|
1189
1303
|
```
|
1190
1304
|
|
1191
1305
|
* This conversion can be enabled by: `--convert example_group`
|
1192
|
-
* Deprecation:
|
1306
|
+
* Deprecation: not deprecated
|
1193
1307
|
* See also: [Zero Monkey Patching Mode! - The Plan for RSpec 3](http://myronmars.to/n/dev-blog/2013/07/the-plan-for-rspec-3#zero_monkey_patching_mode)
|
1194
1308
|
|
1309
|
+
### Hook scope aliases
|
1310
|
+
|
1311
|
+
**This conversion is disabled by default and available only if your project's RSpec is `<%= rspec_version = Transpec::RSpecVersion.hook_scope_alias_available_version %>` or later.**
|
1312
|
+
|
1313
|
+
Targets:
|
1314
|
+
|
1315
|
+
```ruby
|
1316
|
+
<%=
|
1317
|
+
example = <<END
|
1318
|
+
describe 'example' do
|
1319
|
+
before { do_something }
|
1320
|
+
before(:each) { do_something }
|
1321
|
+
before(:all) { do_something }
|
1322
|
+
end
|
1323
|
+
|
1324
|
+
RSpec.configure do |config|
|
1325
|
+
before(:suite) { do_something }
|
1326
|
+
end
|
1327
|
+
END
|
1328
|
+
-%>
|
1329
|
+
```
|
1330
|
+
|
1331
|
+
Will be converted to:
|
1332
|
+
|
1333
|
+
```ruby
|
1334
|
+
<%= convert(example, cli: ['--convert', 'hook_scope'], rspec_version: rspec_version) -%>
|
1335
|
+
```
|
1336
|
+
|
1337
|
+
* This conversion can be enabled by: `--convert hook_scope`
|
1338
|
+
* Deprecation: not deprecated
|
1339
|
+
* See also: [Adds hook scope aliases `example` and `context` · rspec/rspec-core](https://github.com/rspec/rspec-core/pull/1174)
|
1195
1340
|
|
1196
1341
|
## Compatibility
|
1197
1342
|
|