问题描述
我当时正在考虑模拟etcd3来运行单元测试。
它似乎不适用于事务处理-如果我也将模拟代码注释掉,它也将不起作用。
这是基于etcd3交易示例
import React,{ useState,useEffect } from "react";
import { Doughnut,Line,Pie } from "react-chartjs-3";
export default function UserDashboard() {
const DoughData = {
labels: ["Red","Green","Yellow"],datasets: [
{
data: [300,50,100],backgroundColor: ["#FF6384","#36A2EB","#FFCE56"],hoverBackgroundColor: ["#FF6384",},],};
return (
<div>
<Doughnut data={DoughData} />
</div>
);
}
这给出了
import 'jasmine';
import { Etcd3 } from 'etcd3';
import sinon from 'sinon';
const amount = 3;
const etcd3 = new Etcd3();
// const mock = etcd3.mock({ exec: sinon.stub() } as any);
// mock.exec.resolves({ kvs: [{ key: 'foo',value: amount.toString() }] });
describe('transaction',() => {
it('mocks',async () => {
await Promise.all([
etcd3.put('bank/account1').value(20),etcd3.put('bank/account2').value(20)])
await etcd3.stm().transact(tx => {
return Promise.all([
tx.get('bank/account1').number(),tx.get('bank/account2').number(),])
.then(([balance1,balance2]) => {
if (balance1 && balance2) {
return Promise.all([
tx.put('bank/account1').value(balance1 - amount),tx.put('bank/account2').value(balance2 + amount),])
}
})
})
});
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)