在iframe中的缩小代码中模拟React事件

时间:2017-09-24 04:07:06

标签: reactjs testing

我有文件main.jstest.js,其中包含已编译的clojurescript代码。

当我打开my-site.com/test时,它会加载test.js,这会在加载my-site.com/main的页面中添加iframe,然后加载main.js。然后test.js会在iframe中使用my-site.com/main测试各种用户互动。

问题是我正在使用React,所以我需要模拟React个事件。我使用这个iframe结构的部分原因是因为我了解到React.addons.TestUtils没有加载到缩小的代码中。我认为,通过让test.js不加精化,我可以使用其React.addons.TestUtils.Simulate版本来模拟React中的main.js个事件,即使后者被缩小。我认为这可以让我测试生产代码。

我通过大量的试验和错误发现,当main.js没有缩小时,我可以使用它的Simulate版本就好了,但是当它缩小时,我就不能使用{来自Simulate的{​​{1}}中的元素{1}}。{/}

我是对的吗?如果未在相关窗口中加载库,是否可以使用test.js?是否有可能做我想做的事,或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

下班后'更多的反复试验,我终于发现我根本不需要使用start_date = '2016-06-01' end_date = '2017-09-02' allocation = 170000 #contains 100 symbols usesymbols = [''] cost_matrix = [] def data(): dates=pd.date_range(start_date,end_date) df=pd.DataFrame(index=dates) for symbol in usesymbols: df_temp=pd.read_csv('/home/furqan/Desktop/python_data/{}.csv'.format(str(symbol)),usecols=['Date','Close'], parse_dates=True,index_col='Date',na_values=['nan']) df_temp = df_temp.rename(columns={'Close': symbol}) df=df.join(df_temp) df=df.fillna(method='ffill') df=df.fillna(method='bfill') return df def powerset(iterable): s = list(iterable) return chain.from_iterable(combinations(s, r) for r in range(1, len(s)+1)) power_set = list(powerset(usesymbols)) dataframe = data() 。我以前从未能够在我的ReactTestUtils.Simulate DOM中触发事件,但事实证明,我需要做的就是在常规React上设置bubbles: true以触发相应的Event {1}}事件。

此外,由于我试图模拟的事件是" keyup",我还发现我无法设置Reactwhich属性keyCode,至少在我的浏览器中KeyboardEventwhich are deprecated)。所以我不得不改变我的倾听者以寻找keyCode而不是event.key。 (我仍在寻找event.which来容纳旧浏览器,但我先检查which

这有效:

key

希望这可以为别人带来一些麻烦!