独自のデータ関数を作成する

DatasetRepositoryManagerを使用すると独自のデータ関数を作成することができます。

customerに関するデータ関数を作成したい場合

  1. datasetディレクトリの下にcustomers.jsonという名前のデータセットjsonファイルを作成します。

{
  "[customer1]": {
    "name": "customer1",
    "email": "customer1@example.com"
  },
  "[customer2]": {
    "name": "customer2",
    "email": "customer2@example.com"
  }
}
  1. testConfig.jsondatasetセクションを追加し、データセット名customerをデータセットjsonファイルに紐付けます。

androidSettingsConfig.json

  "dataset": {
    "customers": "testConfig/android/androidSettings/dataset/customers.json"
  },
  1. データ関数用のクラスファイルを作成します。

  1. 以下のようにCustomerオブジェクトを実装します。
package exercise

import shirates.core.configuration.repository.DatasetRepository
import shirates.core.configuration.repository.DatasetRepositoryManager

/**
 * Customer
 */
object Customer {

    /**
     * repository
     */
    var repository: DatasetRepository? = null

    /**
     * getValue
     *
     * key format: [datasetName].attributeName
     */
    fun getValue(key: String): String {

        if (repository == null) {
            repository = DatasetRepositoryManager.getRepository("customers")
        }

        val value = repository!!.getValue(longKey = key)
        return value
    }

}

/**
 * customer
 */
fun customer(key: String): String {

    return Customer.getValue(key = key)
}

customerデータ関数を以下のように使用することができます。

CustomerTest.kt

package exercise

import org.junit.jupiter.api.Test
import shirates.core.configuration.Testrun
import shirates.core.driver.commandextension.output
import shirates.core.testcode.UITest

@Testrun("testConfig/android/androidSettings/testrun.properties")
class CustomerTest : UITest() {

    @Test
    fun test() {

        scenario {
            case(1) {
                action {
                    output(customer("[customer1].name"))
                    output(customer("[customer1].email"))
                }
            }
        }
    }
}

コンソール

96	2022/09/28 21:16:24.736	{test}	[SCENARIO]	(scenario)	test()
97	2022/09/28 21:16:24.736	{test-1}	[CASE]	(case)	(1)
98	2022/09/28 21:16:24.736	{test-1}	[ACTION]	(action)	action
99	2022/09/28 21:16:24.737	{test-1}	[output]	(output)	customer1
100	2022/09/28 21:16:24.738	{test-1}	[output]	(output)	customer1@example.com

Link