首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsMockito存根字段

JsMockito存根字段
EN

Stack Overflow用户
提问于 2011-05-05 15:33:23
回答 1查看 651关注 0票数 0

我有一个我正在模拟的简单对象,假设如下:

代码语言:javascript
复制
function MyObject() {
    this.SomeVariable = "some-value";
    this.SomeFunction = function() { ... };
}

现在我想模拟一下我正在做的变量:

代码语言:javascript
复制
var mockedObject = mock(MyObject);
when(mockedObject).SomeVariable.thenReturn("some-other-value");

但是,它告诉我不能对此使用thenReturn() ...记不住确切的错误,但有人知道解决这个问题的方法吗?或者我应该这样做:

代码语言:javascript
复制
var mockedObject = mock(MyObject);
mockedObject.SomeVariable = "some-other-value";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-05 17:45:18

您只能存根或验证交互(函数调用)。因为"SomeVariable“是对象中的一个属性,而不是对象中的一个函数,所以您不能存根或验证它的使用。

因此,您的结论是正确的;您只需提供所需的值作为对象的属性:

代码语言:javascript
复制
var mockedObject = mock(MyObject);
mockedObject.SomeVariable = "some-other-value";

如果是您自己的代码,另一种方法是将原始对象更改为使用"getter“样式的函数,例如:

代码语言:javascript
复制
function MyObject() {
    this.SomeVariable = function() { return "some-value"; };
    this.SomeFunction = function() { ... };
}

对于真正的“对象”,这通常是比使用属性更好的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5894155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档