DebuggerDisplay
полезен. Я бы добавил единицы измерений «{m_value} C», чтобы вы могли сразу увидеть тип.
В зависимости от использования цели вы также можете иметь общую структуру преобразования в / из базовых блоков в дополнение к конкретному классы. То есть хранить значения в единицах СИ, но иметь возможность отображать / редактировать на основе культуры (градусы C, км, кг) против (градусов F, mi, lb).
Вы также можете проверить измерение F # единицы для additioanl идей ( http://msdn.microsoft.com/en-us/library/dd233243.aspx ) - обратите внимание, что это компиляция времени.
Это может быть. Обратный вызов done()
сообщает Jasmine, что вы выполняете асинхронную задачу; Тем не менее, вы должны быть осторожны, чтобы поймать ошибки.
import axios from "axios";
describe("Some test for ", () => {
beforeEach(function(done) {
axios
.get(
"******************"
)
.then(response => {
data_file = response.data;
done();
})
// if the above fails to .get, then we should catch here and fail with a message
.catch(error => {
done.fail('axios.get failed to execute');
});
});
В вашей конфигурации Protractor вам нужно будет добавить SELENIUM_PROMISE_MANAGER: false
для включения async / await. Теперь вам потребуется дождаться всех обещаний.
import axios from "axios";
describe("Some test for ", () => {
beforeEach(async () => {
try {
const data_file = await axios.get("******************").data;
} catch (e) {
console.error('axios.get failed to execute');
throw e; // throwing errors should fail the spec.
}
});
it("some spec ", async () => {
// .getText returns a Promise<string> so you'll need to await it
// to get the string value.
expect(await $('#someId').getText()).toBe(data_file.someData);
});
});