22. Simplification : Hashes
for API response
{ “key1” : “val1”, “key2” : “val2” }
expectation columns called
“key1”, “key2”
will be interpreted as
“$.key1”, “$.key2”
23. Special case : Arrays
id
country
1
Albania
2
Angola
3
Antartica
4
Aruba
Cholera
Diptheria
Hep A
Y
Y
Y
Y
Y
Y
29. In the spreadsheets..
●
Google Apps Script (basically Javascript)
●
Menus
●
URL Fetch Service
●
PDFs
●
Emails
●
Triggers
30. Add menu items
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [
{name: "Run tests", functionName: "runThisSheet"
} ];
ss.addMenu("Test Runner", menuEntries);
}
31. Invoke test runner
var payload =
{
"spreadsheet" : “My Test Spreadsheet”,
"worksheet" : “Worksheet 1”,
"host" : “api.test.com”
};
var options =
{
"method" : "POST",
"payload" : payload
};
var response= UrlFetchApp.fetch(“http://sprat.testrunner.org”, options);
var content = response.getContentText();
32. Create PDF
var ss = SpreadsheetApp.getActiveSpreadsheet();
var file = DriveApp.getFileById(ss.getId())
var pdf = file.getAs(MimeType.PDF);
var folder = DocsList.getFolder(“SpratPDFs”);
var file = folder.createFile(pdf);
36. So how's it working for us?
●
10 spreadsheets
●
2000 tests
●
Nightly emails
37. Other benefits
●
Step-change in rate of data tests
●
TDD by users
●
Pair-programming data changes
●
Diagnosing problems
●
Versioning
●
Authentication
●
API-first design