rails 单元测试

2019-03-25 13:40|来源: 网路

rails 如何保证每次单元测试都清理上一个测试的数据。

相关问答

更多
  • 您可以使用任何JavaScript测试框架与CoffeeScript。 这将测试CoffeeScript输出的JavaScript,因为CoffeeScript本身无法执行,所以这是必需的。 为CoffeeScript编写自己的测试框架很有趣( 我做过 ),但完全没有必要。 更新: Jasmine测试可以在node.js上运行,在这种情况下,测试和被测代码都可以是CoffeeScript,而不需要任何编译步骤。 You can use any javascript testing framework wit ...
  • - assert RuntimeError do + assert_raise RuntimeError do - assert RuntimeError do + assert_raise RuntimeError do
  • 如果您只有时间进行一种类型的测试,并且您正在编写API,那么仅通过调用API端点进行功能测试可能是有意义的。 毕竟,这些端点返回预期结果非常重要。 但是,当您的功能测试开始破坏时,您可能会在没有单元测试的情况下找出问题根源的可怕时间。 您的大多数端点都在使用您的软件的核心部分吗? 祝你好运没有一套强大的单元测试重构。 但这真的说明了你必须弄清楚 - 你的核心设置是否相当稳定? 您真的只是添加功能或新端点吗? 如果是这样,你可能会采用繁重的功能测试方法。 If you only have time to do ...
  • 在这个问题上花了几个小时后,我决定创建非'testcase'代码。 我创建了简单的ruby类函数来运行测试,而没有子类化ActionView :: TestCase 然后Rapns :: Push按照记录的方式工作。 After spending a few more hours on the issue I decided to create non 'testcase' code. I created simple ruby class functions to run the tests withou ...
  • 现在大多数人似乎使用rspec进行单元测试,并使用黄瓜进行集成测试。 你可以在这里看到一个精灵最近的调查,87%的人在调查中选择了rspec。 RSpec和黄瓜的一本好书是由Rspec当前维护者编写的Rspec Book 。 它覆盖rspec和黄瓜。 Railscasts也有一些相关的屏幕录像。 Cucmber1 , Cucumber2 许多人似乎喜欢黄瓜,但如果你没有一个你正在为之工作的客户,这似乎不是很有用。 我的大部分项目都是我自己做的副项目,所以现在我正在研究牛排而不是黄瓜。 这将允许我使用rspe ...
  • 是的,看起来是正确的。 你有点嘲弄类方法并断言它 Yeah that looks correct. You kind of mock the class method and assert it
  • 我认为你想要的是这样的: assert person.valid?, person.errors.full_messages.inspect 如果人员模型无效,则会打印出错误消息供您查看。 I think that what you want is this: assert person.valid?, person.errors.full_messages.inspect if the person model is not valid, the error messages are printed o ...
  • 检查周围是否有无效的固定装置。 尝试删除/修复test/fixtures/users.yml 注意:通过禁用config/initializers/backtrace_silencers.rb的回溯消音器,您应该在单元测试中获得完整的堆栈config/initializers/backtrace_silencers.rb 。 Check if you have invalid fixtures laying around. Try deleting/fixing test/fixtures/users.ym ...
  • ActiveRecord自动将所有插入的时间戳转换为UTC。 这解释了为什么您的演唱会时间调整到不同的时区。 第一步是通过将environment.rb中的config.time_zone设置为您的时区来查看问题是否得到解决。 如果这不能解决问题,请继续阅读: 经过一些测试后,我发现在灯具中使用DateTime与控制器中的相同代码相比似乎存在一些差异。 如果我在我的控制器中使用了DateTime.new(1999),插入的列是1999-01-01 00:00:00 。 如果我在我的灯具中使用了相同的电话,插 ...
  • 尝试将方法定义更改为def test_better_be_true 。 Try changing your method definition to def test_better_be_true.