我正在使用Jest和Enzyme进行测试.我测试正常事件没有问题,但我正在努力找到如何触发和测试来自Native Modules的组件中的事件的正确方法.在我的Jest设置中,我有以下内容:
jest.mock('NativeEventEmitter', () => class MockNativeEventEmitter{
addListener = () => jest.fn()
removeListener = () => jest.fn()
removeAllListeners = () => jest.fn()
});
Run Code Online (Sandbox Code Playgroud)
但是,我不确定在测试中我如何实际调度事件.因此,例如,当用户摇动设备时,我有一个Native模块.在组件本身内,这样设置如下:
shakeEvents: ['shaken],
deviceShakeEmitter: {},
componentDidMount() {
this.deviceShakeEmitter = new NativeEventEmitter(Shake)
this.deviceShakeEmitter.addListener('shaken', this['shaken'])
},
Run Code Online (Sandbox Code Playgroud)
我知道对于内置事件我可以使用jest.simulate('press')等,但对于自定义事件,我很难理解我如何在测试中处理这个问题.
有人能够帮助我理解这个错误.我正在尝试按照构建Web应用程序教程在rails中创建联系表单.我按照步骤生成了一个消息支架.然后我修改了我的路线.接下来它说要把它放到消息控制器show动作中.
if @message.save
flash[:notice] = 'Thanks for Your Message'
format.html { redirect_to root_path }
Run Code Online (Sandbox Code Playgroud)
我已经这样做了,我在MessagesController中得到以下错误ActiveModel :: ForbiddenAttributesError #create ActiveModel :: ForbiddenAttributesError
这是我的消息控制器文件
class MessagesController < InheritedResources::Base
def show
if @message.save
flash[:notice] = 'Thanks for Your Message'
format.html { redirect_to root_path }
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的路线文件如下
# devise_for :users
Run Code Online (Sandbox Code Playgroud)
资源:产品做资源:订单,只有:[:new,:create] #tells rails需要产品ID号结束
# get 'pages/payment'
get 'home/about'
get 'messages/new'
get 'seller' => "products#seller"
get 'sales' => "orders#sales"
get 'static_pages/productlanding'
get "content/veg"
get "content/fruit"
get "content/mix"
get 'subscriptions/new'
root 'static_pages#home'
Run Code Online (Sandbox Code Playgroud) 我一直在关注创建打字挑战的教程.我小心翼翼地遵循这一点.当我尝试从命令行运行脚本时,我不断收到以下错误,我不明白.我认为这个教程可能已经很老了,但是如果有人能给我一些指导来理解它,那么我可以解决它,那将是非常感激的!我从命令行运行脚本时得到的错误如下....
Typechallenge.rb:89: dynamic constant assignment
Console_Screen = Screen.new
^
typechallenge.rb:90: dynamic constant assignment
Typing_Test = Test.new
Run Code Online (Sandbox Code Playgroud)
脚本本身如下......
#Script name: Typing Challenge
#Description: Demonstrating how to apply conditional logic in order to analyze user input and control
#the execution of the script through a computer typing test.
class Screen
def cls
puts ("\n" * 25)
puts "\a"
end
def pause
STDIN.gets
end
end
class Test
def display_greeting
Console_Screen.cls
print "\t\t Welcome to the Typing Challenge" +
"\n\n\n\n\n\n\n\n\n\n\n\n\nPress Enter to " + …Run Code Online (Sandbox Code Playgroud) 谁能建议任何方式来生成rails 4的优惠券代码?它使用条带作为支付解决方案从零开始的电子商务应用程序?
我试图找到一种方法来编写一个函数,该函数总结了数组中的所有元素.我一直在尝试使用JavaScripts reduce函数来实现它.我遇到的问题是我希望这个函数既可以在空数组上运行,也可以在元素作为单独场景的情况下运行.以下示例将测试用例传递给空数组,但是当数组包含元素时则不传递,反之亦然.
function sum (numbers) {
numbers = ['a', 'b', 'c'];
return numbers.reduce(function (x, y, i) {
return x + y + i;
}), 0 };
Run Code Online (Sandbox Code Playgroud)
我正在查看reduce函数的签名,并尝试在此基础上实现这一点,但在我的知识中似乎缺少某些东西.
function (previousValue, currentElement, currentIndex, array)
Run Code Online (Sandbox Code Playgroud) 我理解JavaScript中For循环的基本结构.我在看下面的例子:
function howMany(selectObject) {
var numberSelected = 0;
for (var i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}
Run Code Online (Sandbox Code Playgroud)
在第四行,我不明白你会[i]在术语中称什么
,为什么它是方括号?
ruby ×3
javascript ×2
activerecord ×1
arrays ×1
e-commerce ×1
gem ×1
jestjs ×1
react-native ×1