如何使用Selenium确保放心地在体内调用函数

时间:2018-11-12 00:47:59

标签: java json rest selenium rest-assured

我正试图在放心的内部调用一个函数-主体用于发布请求,但它不起作用,而是考虑作为值:

如果我将其替换为123或其他任何编号,然后它起作用。但是,如果每次需要手动输入时,我都找不到使用放心的逻辑(即使在邮递员中,我也可以使用randomInt函数生成随机数。)         请建议有什么方法可以调用函数,因为对于我的情况,数字每次都是唯一的?

这是我的示例代码:

body("{" + 
        "\"OrderReferenceNumber\": \"generateRandomNumber(3)\"," + 
        "\"Recipient\": {" + ............so on............
"}")

**generateRandomNumber(3)** is a function which generates random no. up to 3 decimal.

1 个答案:

答案 0 :(得分:2)

在当前的实现中,您要将函数的名称添加到主体,而不是结果。工作示例之一:

void Main()
{
    var test = new myClass();
    test.Num1 = 1;
    test.Num2 = 2;
    test.Num3 = 3;
    test.Num4 = 4;

    test.result1.Should().Be(3);
    test.result2.Should().Be(5);
    test.result3.Should().Be(6);

    test.Num1 = 2;
    test.result1.Should().Be(4);
    test.Num2 = 0;
    test.result2.Should().Be(3);
    test.result3.Should().Be(4);
}

class myClass : INotifyPropertyChanged
{
    // private setter since these values are only being set when the num{i} are updated
    public int result1 { get; private set; }
    public int result2 { get; private set; }
    public int result3 { get; private set; }

    public event PropertyChangedEventHandler PropertyChanged;
    public myClass()
    {
        PropertyChanged += new PropertyChangedEventHandler(UpdateResultValue);
    }

    private void UpdateResultValue(object sender, PropertyChangedEventArgs e)
    {
        result1 = num1 + num2;
        result2 = num2 + num3;
        result3 = num2 + num4;
    }

    protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

    protected bool SetField<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
    {
        if (EqualityComparer<T>.Default.Equals(field, value)) return false;
        field = value;
        OnPropertyChanged(propertyName);
        return true;
    }

    private int num1;
    public int Num1
    {
        get => num1;
        set => SetField(ref num1, value);
    }

    private int num2;
    public int Num2
    {
        get => num2;
        set => SetField(ref num2, value);
    }

    private int num3;
    public int Num3
    {
        get => num3;
        set => SetField(ref num3, value);
    }

    private int num4;
    public int Num4
    {
        get => num4;
        set => SetField(ref num4, value);
    }
}