我想在给定特定参数值时使用Mocha存根方法,并在给出任何其他值时调用原始方法.
当我这样做时:
MyClass.any_instance.stubs(:show?).with(:wanne_show).returns(true)
Run Code Online (Sandbox Code Playgroud)
我得到了
unexpected invocation for MyClass.show?(:other_value)
Run Code Online (Sandbox Code Playgroud)
我也知道,在没有'with'调用的情况下编写模拟时我可以存根所有参数,然后给出我特定的模拟.但是我必须知道每次通话的返回值,但事实并非如此:/
tldr; 有没有办法在存根中调用原始方法或只存储特定参数并留下其他参数?
我的rails应用程序有问题.从Rails 3到4更新后.当我在开发模式下启动服务器后浏览页面时,一切都很好.
但是在单个代码更改(甚至添加空格)之后,每个页面请求都会显示以下错误.
无法自动加载常量用户,预期/path/to/my/rails-app/app/models/user.rb来定义它
该文件完全存在于那里并定义了类:
class User < ActiveRecord::Base
…
Run Code Online (Sandbox Code Playgroud)
我尝试了很多事情config.autoload_paths,并 config.eager_load_paths在application.rb,但没有运气.停用弹簧也没有帮助.
开发应用程序并在每次更改后都必须重新启动服务器才能达到90秒.
$ rails -v
Rails 4.2.4
$ ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)
一些相关的配置:
development.rb
MyApp::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart …Run Code Online (Sandbox Code Playgroud) 随着时间的推移,我通过更改数据并重新绘制它们来"动画化"图表.
// initialization
var data = ...
var targetPlot = $.jqplot('#diagram', data, diagramOptions);
Run Code Online (Sandbox Code Playgroud)
一段时间后,我将以某种方式更改数据,并希望更新图表.以下解决方案有效:
// update Data
targetPlot.data = ...;
// remove old diagram
$('#<%= "diagram" + diagram.id.to_s %>container').empty();
// redraw
targetPlot = $.jqplot('#diagram', data, diagramOptions);
Run Code Online (Sandbox Code Playgroud)
这是一个完整的重绘.由于大量数据和短暂的间隔,jQPlot占用大量内存,图表闪烁.
怎么做对吗?
使用redraw-function的解决方案只绘制旧图:
// update Data
targetPlot.data = ...;
targetPlot.redraw();
Run Code Online (Sandbox Code Playgroud)