I would either tweak the framework:

describe('thing', () => {
  provide(() => new Thing());
  it('does one thing', (thing) => {
    thing.oneThing();
  });
  it('does other things', (thing) => {
    thing.otherThings();
  });
});

or just explicitly do `const thing = new Thing()` in each test.

On Thu, May 28, 2020 at 12:36 PM Mohsen Azimi <m...@azimi.me> wrote:

> Hi,
>
> I was looking at our test code and noticed we do this variable declaration
> gymnastic to get it to work:
>
> describe('thing', () => {
> let thing: Thing;
> beforeEach(() => {
> thing = new Thing()
> })
> it('does one thing', () => {
> thing.oneThing()
> })
> it('does other things', () => {
> thing.otherThings()
> })
> })
>
> To me, the declaration of thing and binding it in the beforeEach block
> seemed kind of weird. In an ideal world I would declare thing in my
> beforeEach block and via language features communicate that scope of
> beforeEach's callback and describe's callback above should be the same.
>
> Has this come up before? Has there been proposals to address this issue?
> --
> Mohsen Azimi
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to