Rails 单元测试中的辅助函数

发布于 2024-09-12 15:38:16 字数 261 浏览 2 评论 0原文

我在单元测试的代码中使用了这种代码。

test "should be awesome" do
  assert true
end

我使用 FactoryGirl 而不是固定装置。

我发现我经常重复自己,并且拥有辅助函数会非常有用。在单元测试中创建和调用辅助函数的最佳方法是什么?是否有像控制器中那样可用的 before_filter (我尝试将其放入,但它只是一个未定义的方法)。任何帮助表示赞赏!

I'm using this sort of code in my code in my Unit tests.

test "should be awesome" do
  assert true
end

I'm using FactoryGirl instead of fixtures.

I find that I'm repeating myself a lot and having helper functions would be quite useful. What's the best way to create and call a helper function in the unit test? Is there a before_filter available like it is in the controllers (I tried putting it in, but it's just an undefined method). Any help is appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟凡古楼 2024-09-19 15:38:16

您可以毫无问题地将实用函数添加到单元测试中。只要您不将它们命名为“test_something”,它们就不会作为单元测试运行。然后,您可以从实际的单元测试方法中调用它们(您使用的格式归结为在类中拥有一个方法)。

因此:

test "should be awesome" do
  assert_general_awesomeness
  assert true
end

private

def assert_general_awesomeness
  assert true
end

将在各处使用的实用方法可以放入 test_helper 中,并且它们将可用于您的所有测试。您也可以将一个模块混合到测试中以提供常见的实用方法。

如果您在单元测试之前进行常见的设置调用,则可以放入一个 setup 方法,该方法将在类中的每个测试之前调用。

You can add utility functions to your unit tests without a problem. As long as you don't call them name them like "test_something" they won't get run as unit tests. You can then call them from your actual unit test methods (the format you use boils down to having a method in the class anyway).

So:

test "should be awesome" do
  assert_general_awesomeness
  assert true
end

private

def assert_general_awesomeness
  assert true
end

Utility methods that are going to be used all over the place can go in test_helper and they will be available to all your tests. You could alternatively have a module that you mix in to your tests to provide common utility methods.

If you are doing common calls to set up before a unit test you can put in in a setup method which will be called before each test in the class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文