Testing via proxy in truffle upgrades

I am using truffle upgrades for creating Upgradable contracts.

While testing , I found there is something called Test via proxy.

Since all the test cases are same here as well,

I just want some help to understand what difference exactly exists while testing my contract via proxy.

Any specific thing that I cannot test normally?

What exactly is testing with proxy?.

1 Like

Hi @Sam0000,

Welcome to the community :wave:

See the documentation: https://docs.openzeppelin.com/learn/upgrading-smart-contracts#testing

Essentially we can create standard unit tests to test our implementation contracts and we can create higher level tests to check interaction via the proxy, including when we upgrade to check that state is maintained.

For an example of tests see: OpenZeppelin Upgrades: Step by Step Tutorial for Truffle