jsContract

契约编程的JavaScript库
授权协议 未知
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 鲜于光赫
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

jsContract 是一个实现了契约编程的 JavaScript 库。

示例:

function _internalMethod(a, b){
Contract.expectNumber(a);
Contract.expectNumber(b);
Contract.expectWhen(config.mode === "divide", b > 0, "Divisor cannot be 0");
Contract.expectWhen(config.mode === "multiply", a > 0 && b > 0, "The multiplicands cannot be 0");
Contract.guaranteesNumber();
Contract.guarantees(function(result){
return result > 0;
}, "Result must be > 0");

if (config.mode == "divide") {
return a / b;
}
// At this point config.mode must be "multiply"
return a * b;
}
 相关资料
  • 在自由软件项目中的契约需要小心处理。理想状况下,你希望一个承包者的工作被社区接受并打包进入公共发布版本。在理论上,谁是承包者并不重要,只要他的作品足够好并满足项目的指导方针。理论和实践一般也是一致的:一个通过贡献好的补丁展示自己的完全陌生人通常能将代码置入软件当中。问题是,一个完全的陌生人很难为非琐碎的改进或新的特性贡献好的补丁;一个人必须首先和项目的其他人进行讨论。讨论的时间不能精确预测。如果承

  • 契约就是指用去中心化的比特币系统来执行金融协议。比特币的契约可以让交易最大程度地摆脱对外部机构的依赖,例如审判系统等,这样在金融交易方面就大大减少了受未知实体影响的风险。 以下的一些部分会详细说明现有的几种比特币契约。因为契约并不仅局限于交易,更是直接和现实的人相关的协议,所以他们也有既定的框架,这些框架将会在后面的内容中有详细的解读说明。 除了以下介绍的几种契约方式外,还有人提出其他的方式。有一

  • 简介 Laravel 的契约是一组定义框架提供的核心服务的接口。例如,Illuminate\Contracts\Queue\Queue 契约定义了队列任务所需的方法,而 Illuminate\Contracts\Mail\Mailer 契约定义了发送电子邮件所需的方法。 框架对每个契约都提供了相应的实现。例如,Laravel 提供了具有各种驱动的队列实现和由 SwiftMailer 提供支持的邮件

  • 我有静态编程语言为空的问题,我想知道我是否能够解决它与合同 和 还有一个具有可为空数据的通用模型: 现在我创建了一个函数,它以接口作为参数。案例是仅当,因此如下所示: 那么现在,有没有任何选项可以使用Kotlin契约来确保编译器不使用null参数执行?

  • 关于本话题请先参考验证契约一节的介绍。 使用rake pact:verify 使用pact:verify任务是最常见的验证契约的方式。这也是配置你的服务提供者应遵守的契约的默认集之处。 在Rakefile中引入'pact/tasks'就可以使用了。 # In Rakefile require 'pact/tasks' # Remember to add it to your default Ra

  • “验证契约”是Pact测试过程中的第二步。契约文件中的每个请求会在提供者上进行重放,所返回的响应将会被用于与契约文件中的期望响应进行对比,如果两者匹配,我们就可以确信消费者和提供者能够保持兼容。 要验证契约,应该这样做: 配置待验证契约的位置。可以是一个HTTP URL,也可以是一个本地文件系统路径。 在提供者状态中预置数据。 (可选项)对将被用于播放请求的服务提供者应用进行配置。 关于如何在代码