title: Attempted to assign to readonly property since upgrading Angular to 2.3.1
body: <p>I upgraded an Angular 2.1.0 project to 2.3.1 this morning, and since then 5 of my 86 tests fail with the following error:</p>
  
  <blockquote>
    <p>Failed: Attempted to assign to readonly property.
            set@webpack:///~/@angular/core/src/facade/errors.js:43:33 &lt;- src/test.ts:12465:52</p>
  </blockquote>
  
  <p>Here is the simplest test that is failing:</p>
  
  <pre><code>/* tslint:disable:no-unused-variable */
  import {async, ComponentFixture, TestBed} from '@angular/core/testing';
  import {ProfileComponent} from './profile.component';
  import {TranslateModule, TranslateService} from 'ng2-translate';
  import {FormsModule} from '@angular/forms';
  import {ProfileService} from '../profile.service';
  import {ProfileServiceStub} from '../../../testing/profile-service-stub';
  import {TranslateServiceStub} from '../../../testing/translate-service-stub';
  import {NotificationsServiceStub} from '../../../testing/notifications-service-stub';
  import {NotificationsService} from 'angular2-notifications';
  
  describe('ProfileComponent', () =&gt; {
    let component: ProfileComponent;
    let fixture: ComponentFixture&lt;ProfileComponent&gt;;
    const profileServiceStub = new ProfileServiceStub(5000);
  
    beforeEach(async(() =&gt; {
      TestBed.configureTestingModule({
        declarations: [ProfileComponent],
        imports: [
          TranslateModule, FormsModule
        ],
        providers: [
          {provide: ProfileService, useValue: profileServiceStub},
          {provide: TranslateService, useClass: TranslateServiceStub},
          {provide: NotificationsService, useClass: NotificationsServiceStub}
        ]
      }).compileComponents();
    }));
  
    beforeEach(() =&gt; {
      fixture = TestBed.createComponent(ProfileComponent);
      component = fixture.componentInstance;
      fixture.detectChanges();
    });
  
    it('should create', () =&gt; {
      expect(component).toBeTruthy();
    });
  });
  </code></pre>
  
  <p>I don't see any structural difference in the way the test is set up, so I guess it has something to do with something I'm doing.</p>
  
  <p>And when I have a look at errors.js, the incriminated line looks like this:</p>
  
  <pre><code>set: function (message) { this._nativeError.message = message; },
  </code></pre>
  
  <p>I really don't know how to troubleshoot that.</p>