菜鸟教程小白 发表于 2022-12-13 06:14:56

ios - 如何在使用基于 View 的类模型时调用通用 Calabash 方法?


                                            <p><p>我正在按照基于 View 的类模型为我的应用设置 Calabash 测试框架,即每个 View 都有一个包含该 View 所需方法的类。</p>

<p>但是当我调用诸如“wait_for()”之类的葫芦函数时,它会抛出一个错误:</p>

<blockquote>
<p>undefined method `wait_for&#39; for LoggedInPage:Class (NoMethodError)</p>
</blockquote>

<p>我已经在我的 env.rb 中添加了这些</p>

<pre><code> require &#39;calabash-cucumber/wait_helpers&#39;
require &#39;calabash-cucumber/operations&#39;
World(Calabash::Cucumber::Operations)
World(Calabash::Cucumber::WaitHelpers)
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>问题可能是页面对象类没有在与 cucumber 运行的相同“世界”中初始化。将文件添加到 env 会将它们及其方法添加到 cucumber 正在运行的世界中。您必须在创建页面对象时将该世界传递给您的页面对象,以使它们能够访问这些功能。</p>

<p>让您的页面对象类继承自葫芦页面对象基础 - <a href="http://www.rubydoc.info/gems/calabash-cucumber/Calabash/IBase" rel="noreferrer noopener nofollow">http://www.rubydoc.info/gems/calabash-cucumber/Calabash/IBase</a>
当你创建一个页面对象的新实例时,传入 self。</p>

<pre><code>class MyPage &lt; Calabash::IBase
...

new_instance_of_page_object = MyPage.new(self)
</code></pre>

<p>在这种特定情况下,从 IBase 继承将使您能够访问您正在谈论的功能,但传入 self 将意味着您可以访问您在 env 文件中添加的任何其他内容。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在使用基于 View 的类模型时调用通用 Calabash 方法?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29465410/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29465410/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在使用基于 View 的类模型时调用通用 Calabash 方法?