热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NEAR开发者认证NCDDay3

文章目录Day3课程测试web3资源AssemblyScriptRustDay3课程https:learnnear.clublessonsday-3-testing-web3-n

文章目录

  • Day3课程
    • 测试 web3
    • 资源
      • AssemblyScript
      • Rust


Day3课程

https://learnnear.club/lessons/day-3-testing-web3-ncdl1c4/
https://hackmd.io/@nearly-learning

测试 web3

学习编写智能合约的单元测试和模拟测试。

今天的目标是编写可以合约的单元测试和模拟测试。

核心活动

  • 在下面的资源章节中,选择AssemblyScript或Rust
    • 为列为核心活动的每个合约编写3-5个单元测试

奖励活动
如果您有时间四处逛逛,这里还有更多适合您的东西。

如果您需要更多有关此挑战的想法,请考虑以下事项:

  1. 查找没有单元测试的合约(有很多)并编写它们
  2. 从合约中删除一些(或全部)现有的单元测试并重写它们。
  3. 看看这个小难题,对您来说可能很有趣
    • [Scavenger Hunt Challenge #4] (https://hackmd.io/@nearly-learning/hunt-04)
  4. 从空白文档(或只是样板)开始,然后尝试测试驱动(TDD)合约。

更加深入的探索
如果您感到无所畏惧,那么大约一天之内就可以走上这条路

While simulation tests are an evolving work in progress, we do have a few examples which can help you. The key to understanding simulation tests on NEAR is that you’re testing the Wasm binary. This means the same simulation test configuration will work for Rust and AssemblyScript.

虽然模拟测试是一项不断发展的工作,但我们确实有一些示例可以为您提供帮助。 了解NEAR上的模拟测试的关键在于您正在测试Wasm二进制文件。 这意味着相同的模拟测试配置将适用于Rust和AssemblyScript。

In fact, the exact same simulation tests can be used against a compiled Rust or compiled AssemblyScript contract. Maybe this is obvious once you consider that simulation tests are using the same on-chain virtual machine so everything you do in a simulation test should be 1:1 repeatable on-chain.

实际上,可以对已编译的Rust或已编译的AssemblyScript合约使用完全相同的模拟测试。 一旦您考虑到模拟测试使用的是相同的链上虚拟机,就恨容易理解。因此您在模拟测试中所做的一切都应该在1:1链上虚拟机可重复的。

Heads up, simulation tests must be written in Rust. The examples below will make that clear.

  • NEARly Neighbors has simulation tests
  • Workshop on Cross-contract Calls has simulation tests

资源

记住:今天的活动

  • 您确实需要为每个合约构建(并运行测试,如果可用的话)
  • 你应该试着理解合约中的每一行代码

AssemblyScript

如果你想专注于AssemblyScript, OPEN the list of AssemblyScript contracts

至少3份被标记为核心活动的合同

a)为每个合约编写3-5个新的单元测试,不管它是否已经有单元测试

b)验证测试如预期通过(测试可以通过命令行运行)

单元测试是由as- aspect提供的,语法类似于RSpec。这个库有很好的文档记录,但有时tests for the testing library可能是帮助您快速学习的示例的最佳来源。

near.dev 上几乎所有可用的示例都包括单元测试。
在这里插入图片描述

Rust

请参考原文


推荐阅读
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
author-avatar
canku
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有