smartcontractkit / full-blockchain-solidity-course-js

Learn Blockchain, Solidity, and Full Stack Web3 Development with Javascript
12.25k stars 2.94k forks source link

Lesson 6: getting error message, while scripting my own test for Smart Contract Function "addPerson" #4601

Open NazoBeyli opened 1 year ago

NazoBeyli commented 1 year ago
Error: missing argument: passed to contract (count=1, expectedCount=2, code=MISSING_ARGUMENT, version=contracts/5.7.0)

this is my error message that i get when i try to write a test as an exercise. my code looks like this :

it("should save the name and the number", async function(){
  People = await Vertrag.addPerson("NEO, 22");
  await People.wait(1);
  expectedPeople = People;
  expect(expectedPeople.toSting()).to.equal(People);

my whole code looks like this:


const{ethers} = require ("hardhat");
const {expect, assert } = require("chai");   //sowohl chai als auch ethers sind in HARDHAT DEPENDENCIES. SOMIT HIER IMPORTIERBAR
const { getStorageAt } = require("@nomicfoundation/hardhat-network-helpers");
const { ConstructorFragment } = require("@ethersproject/abi");

describe("SimpleStorage", function(){
  let SSFabrik
  let Vertrag
  let People

  beforeEach(async function(){  //beforeEach und it sind test vorraussetzungen. 1. muss ein funktion ausgeführt werden. und bei It() wird dann getestet.
    SSFabrik = await ethers.getContractFactory("Simplestorage");
    await SSFabrik.deploy();
    Vertrag = await SSFabrik.deploy();

  })

it("sollte mit einer zahl von 0 starten",async function(){
  const anfangswert = await Vertrag.retrieve();
  const WertErwartet = "0";
  assert.equal(anfangswert.toString(),WertErwartet); //assert bedeutet erwarten
})

it("sollte sich updaten wenn store gecallt wird",async function(){
  const NeuerErwarteterWert = "7";  //bei store zu 7 updaten
  const zwischenSpeicher = await Vertrag.store(NeuerErwarteterWert);  //speichere den wert der variabel "neuererwarteterWert" durch store in diese variabel
  await zwischenSpeicher.wait(1);       //block confirmation

  const gespWert = await Vertrag.retrieve(); //lese funktion von vertrag + diesen wert speicher in "gespWert"
  //assert.equal(gespWert.toString(), NeuerErwarteterWert) //annehmen/vergleichen/ der eigentliche test
  expect(gespWert.toString()).to.equal(NeuerErwarteterWert);
}) 

it("should save the name and the number", async function(){
  People = await Vertrag.addPerson("NEO, 22");
  await People.wait(1);
  expectedPeople = People;
  expect(expectedPeople.toSting()).to.equal(People);

})
})

```javascript
alymurtazamemon commented 1 year ago

@NazoBeyli Hey! It is not a course-related issue so please close this and come to discussions where contributors are very active and your issue will be resolved it is your code-related issue.

AmitKochar1 commented 1 year ago

There are several mistakes in your testing file, for example:


it("should save the name and the number", async function(){ People = await Vertrag.addPerson("NEO", "22"); await People.wait(1); ***const expectedPeople = People; expect(expectedPeople.toSting()).to.equal(People); })


I have put *** where you need to put args in the correct manner, I suggest putting your issues as a discussion!!