使用Calabash而不是Ruby

时间:2017-03-03 14:42:19

标签: xamarin calabash xamarin.uitest

是否可以将Xamarin Calabash与Ruby之外的编程语言一起使用,例如C#?

我想自动化移动设备测试。

2 个答案:

答案 0 :(得分:3)

Xamarin.UITest是基于C#的Calabash

  

Xamarin.UITest,一个基于Calabash的自动UI验收测试框架,允许程序员在C#和NUnit中编写和执行测试,以验证iOS和Android应用程序的功能。

参考:https://developer.xamarin.com/guides/testcloud/uitest/

答案 1 :(得分:3)

如果您希望Ghekin作为描述测试的语言,您可以在Xamarin.UITest之上使用Specflow。

http://specflow.org/getting-started/

您可以在此处查看示例:https://github.com/smstuebe/xamarin-testing-demo/tree/master/Todo.Tests.UI.Specflow

然后,测试看起来像这样。

Feature: Todo
    In order to remember what I have to do
    As a user
    I want to maintain tasks in a list

Scenario: Add a task
    When I enter "Added Task" 
    And I press add
    Then the task "Added Task" should be added to the list

步骤定义然后使用Xamarin.UITest

[Binding]
public sealed class TodoPageSteps
{
    private TodoPage _page;
    private IApp _app;

    public TodoPageSteps()
    {
        _page = new TodoPage();
        _app = FeatureContext.Current.Get<IApp>("App");
    }

    [When(@"I enter ""(.*)""")]
    public void WhenIEnter(string task)
    {
        _app.Tap(_page.AddEntry);
        _app.EnterText(_page.AddEntry, task);
    }

    [When(@"I press add")]
    public void WhenIPressAdd()
    {
        _app.Tap(_page.AddButton);
    }

    [Then(@"the task ""(.*)"" should be added to the list")]
    public void ThenTheTaskShouldBeAddedToTheList(string task)
    {
        _app.WaitForElement(_page.LabelOfTask(task));
    }
}