0

Knockoutを使用して次のようなビューモデルを作成しました。

@model Application.Models.PageModel

<script type="text/javascript">

    $(function () {

    var publishUrl = '@Html.Raw(Url.Action<Application.Controllers.PageController>(x => ...;

    var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));

....

私の質問は、javascriptだけの単体テストをどのように行うことができるかです:javascriptは-Html Helper(@ Html.Raw ...)と-@ Html.Raw(...)と--Modelに依存します

誰か助けてくれませんか?

4

1 に答える 1

0

コードは、単体テストできるように記述する必要があります。ビューモデルを作成し、新しいビューモデルオブジェクトの作成中に値をビューモデルに渡します。

ビューモデルを定義する

function ViewModel(publishUrl, initialData)
{
   this.publishUrl=publishUrl;
   this.initialData=initialData;
}

ビューモデルオブジェクトを作成し、外部依存関係の値を渡します。このようにして、モック値を渡すことでビューモデルをテストできます。

ビューモデルを作成し、外部の依存関係の値を渡します

var _viewModel = new ViewModel (@Html.Raw(Url.Action<Application.Controllers.PageController>(x => ...), @Html.Raw(new JavaScriptSerializer().Serialize(Model)) )

ご存知のように、ビューモデルは常にノックアウトにバインドできます。

ko.applyBindings(_viewModel)

その中のViewModelロジックをテストするときは常に、その緩く結合されているため、viewmodel内のロジックをテストするために必要な任意の値を渡すことができるはずです。

于 2013-02-24T07:06:01.880 に答える