rails/actionview
Sean Doyle a9148b45f3 Add "Testing View Partials" section to the Testing Guides
Motivation / Background
---

While the `ActionView::TestCase` class isn't marked with a `:nodoc:`
comment to indicate that it's internal to Rails, there isn't much
content in the guides that explains how to test view partials.

Libraries like
[view_component](https://github.com/ViewComponent/view_component/) have
[built-in support for
testing](https://viewcomponent.org/guide/testing.html), including
Capybara integration.

While `ActionView::TestCase` already integrates with
`rails-dom-testing`, that integration could be better documented.
Additionally, it wouldn't take much for consuming applications to mimic
the ViewComponent testing experience for their Action View Partials.

Details
---

First, link to the "Testing Rails Applications" page from the
`ActionView::TestCase` class documentation.

Next, add a "Testing View Partials" section to the guides that expands
upon the variety of tooling available to tests that inherit from
`ActionView::TestCase`. In that section, cover topics like:

* the `render` helper method
* the `rendered` helper attribute reader
* calls to `assert_select` with attribute placeholders
* the `document_root_element` helper method
* integration with Ruby's Pattern Matching
* opportunities to integrate with Capybara

Additional Information
---

Additionally, add test coverage that exercise the examples shared in the
new section, including:

* Calls to `assert_select` that utilize attribute placeholders
* Ruby 3.0's Pattern Matching
* Integration with Capybara
2023-09-13 09:44:44 -04:00
..
app Add Bun support (#49241) 2023-09-12 16:55:27 -04:00
bin Use frozen string literal in actionview/ 2017-07-24 11:53:43 +03:00
lib Add "Testing View Partials" section to the Testing Guides 2023-09-13 09:44:44 -04:00
test Add "Testing View Partials" section to the Testing Guides 2023-09-13 09:44:44 -04:00
.eslintrc Convert rails-ujs to ES2015 modules 2022-07-07 21:52:08 -04:00
.gitignore use Karma as the test runner for the UJS tests 2022-12-31 23:03:09 +11:00
actionview.gemspec Update Action View and Dispatch to use Rails::Dom::Testing helpers 2023-08-03 11:17:38 -04:00
CHANGELOG.md Preparing for 7.1.0.beta1 release 2023-09-13 00:36:01 +00:00
karma.conf.js add comments to explain the test rollup and karma config files 2023-01-04 00:08:47 +11:00
MIT-LICENSE Remove Copyright years (#47467) 2023-02-23 11:38:16 +01:00
package.json Preparing for 7.1.0.beta1 release 2023-09-13 00:36:01 +00:00
Rakefile Use FileUtils.mkdir_p for ujs log directory 2023-04-23 18:58:12 +09:00
README.rdoc Unlink Rails constant from READMEs 2023-05-29 15:14:44 +09:00
rollup.config.js Convert rails-ujs to ES2015 modules 2022-07-07 21:52:08 -04:00
rollup.config.test.js add comments to explain the test rollup and karma config files 2023-01-04 00:08:47 +11:00
RUNNING_UJS_TESTS.rdoc use Karma as the test runner for the UJS tests 2022-12-31 23:03:09 +11:00
RUNNING_UNIT_TESTS.rdoc Fix typos and add a few suggestions 2017-11-28 19:27:43 +01:00

= Action View

Action View is a framework for handling view template lookup and rendering, and provides
view helpers that assist when building HTML forms, Atom feeds and more.
Template formats that Action View handles are ERB (embedded Ruby, typically
used to inline short Ruby snippets inside HTML), and XML Builder.

You can read more about Action View in the {Action View Overview}[https://guides.rubyonrails.org/action_view_overview.html] guide.

== Download and installation

The latest version of Action View can be installed with RubyGems:

  $ gem install actionview

Source code can be downloaded as part of the \Rails project on GitHub:

* https://github.com/rails/rails/tree/main/actionview


== License

Action View is released under the MIT license:

* https://opensource.org/licenses/MIT


== Support

API documentation is at

* https://api.rubyonrails.org

Bug reports for the Ruby on \Rails project can be filed here:

* https://github.com/rails/rails/issues

Feature requests should be discussed on the rails-core mailing list here:

* https://discuss.rubyonrails.org/c/rubyonrails-core